Function at 0x47b270
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cefe3
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x501108]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1c], edi
push 2
call fcn.00405fb0
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x47b2c9
mov ecx, eax
call fcn.00409bf0
mov esi, eax
jmp 0x47b2cb
xor esi, esi
mov eax, dword [esi]
mov ecx, esi
push edi
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x14]
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0xf0
mov eax, dword [esi]
call dword [eax + 0x5c]
push 1
mov ecx, esi
call fcn.00405f90
push 0x48
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x47b334
push 0xf9faf5
mov ecx, eax
call fcn.00413fa0
mov ecx, eax
jmp 0x47b336
xor ecx, ecx
mov eax, dword [esi]
push ecx
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0xa8]
push 2
mov ecx, esi
call fcn.00405fb0
push 0x120
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x47b37a
mov ecx, eax
call fcn.00404880
mov ecx, eax
mov dword [ebp - 0x14], eax
jmp 0x47b37f
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x144], ecx
je 0x47b3b1
test ecx, ecx
je 0x47b39b
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x144]
mov dword [edi + 0x144], ecx
test eax, eax
je 0x47b3b1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x144]
push esi
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x144]
push 1
call fcn.00405f90
mov ecx, dword [edi + 0x144]
movaps xmm0, xmmword [0x4d2120]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x47b40c
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47b40e
xor esi, esi
push 3
push 0xa0
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [edi + 0x144]
push esi
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov ecx, dword [edi + 0x144]
push 1
call fcn.00406f40
mov ecx, dword [edi + 0x144]
movaps xmm0, xmmword [0x4d2050]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
mov ecx, dword [edi + 0x144]
push 2
call fcn.00405fb0
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x47b491
mov ecx, eax
call fcn.00409bf0
mov esi, eax
jmp 0x47b493
xor esi, esi
mov eax, dword [esi]
mov ecx, esi
push edi
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x14]
push 1
mov ecx, esi
call fcn.00405f90
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x14
mov eax, dword [esi]
call dword [eax + 0x5c]
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0x13
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [esi]
call dword [eax + 0x80]
push 2
mov ecx, esi
call fcn.00405fb0
push 0x190
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x47b532
mov ecx, eax
call fcn.0041e700
mov ecx, eax
mov dword [ebp - 0x14], eax
jmp 0x47b537
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x164], ecx
je 0x47b569
test ecx, ecx
je 0x47b553
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x164]
mov dword [edi + 0x164], ecx
test eax, eax
je 0x47b569
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x164]
push esi
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x164]
push 0
call fcn.00405f90
movaps xmm0, xmmword [0x4d20b0]
sub esp, 0x10
mov ecx, dword [edi + 0x164]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00420500
sub esp, 0x10
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 5
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov ecx, dword [edi + 0x164]
call fcn.00420580
mov ecx, dword [edi + 0x164]
movaps xmm0, xmmword [0x4d2100]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x164]
movaps xmm0, xmmword [0x4d2010]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x47b626
mov ecx, eax
call fcn.0040f720
jmp 0x47b628
xor eax, eax
push 3
push 0xa1
mov ecx, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [ebp - 0x10]
push 1
sub esp, 0x10
mov eax, esp
mov dword [eax], 0x18
mov dword [eax + 4], 0
mov dword [eax + 8], 0x24
mov dword [eax + 0xc], 0xc
call fcn.00410200
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi + 0x164]
push eax
push eax
push eax
call fcn.0041eec0
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x47b69f
mov ecx, eax
call fcn.0040f720
jmp 0x47b6a1
xor eax, eax
push 3
push 0xa1
mov ecx, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0xc
mov dword [eax + 0xc], 0xc
call fcn.00410200
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x47b707
mov ecx, eax
call fcn.0040f720
jmp 0x47b709
xor eax, eax
push 3
push 0xa1
mov ecx, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [ebp - 0x10]
push 1
sub esp, 0x10
mov eax, esp
mov dword [eax], 0xc
mov dword [eax + 4], 0
mov dword [eax + 8], 0x18
mov dword [eax + 0xc], 0xc
call fcn.00410200
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi + 0x164]
push eax
push eax
push dword [ebp - 0x14]
call fcn.0041f000
push ecx
mov ecx, esp
push 0x4d1f44
call fcn.00404260
mov ecx, dword [edi + 0x164]
call fcn.0041ebf0
mov ecx, dword [edi + 0x164]
push 0x6d615a
call fcn.0041ec90
movaps xmm0, xmmword [0x4d1ff0]
sub esp, 0x10
mov ecx, dword [edi + 0x164]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00420540
mov ecx, dword [edi + 0x164]
push 0xfffffffffffffff1
call fcn.0041ecb0
mov ecx, dword [edi + 0x164]
push 2
call fcn.00406f40
mov ecx, dword [edi + 0x164]
push 1
call fcn.0041eb40
mov ecx, dword [edi + 0x164]
test ecx, ecx
je 0x47b7e6
lea eax, [edi + 0x134]
test eax, eax
je 0x47b7e6
push eax
push 0x190
call fcn.00401980
push 0x180
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x47b80f
mov ecx, eax
call fcn.00414ce0
mov ecx, eax
mov dword [ebp - 0x14], eax
jmp 0x47b814
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x168], ecx
je 0x47b846
test ecx, ecx
je 0x47b830
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x168]
mov dword [edi + 0x168], ecx
test eax, eax
je 0x47b846
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x168]
push esi
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x168]
push 0
call fcn.00405f90
mov ecx, dword [edi + 0x168]
push 1
call fcn.00405f70
mov ecx, dword [edi + 0x168]
push 1
call fcn.00405f50
push ecx
mov ecx, esp
push 0x4d1f60
call fcn.00404260
mov ecx, dword [edi + 0x168]
call fcn.00415560
mov ecx, dword [edi + 0x168]
push 2
call fcn.00406f40
mov ecx, dword [edi + 0x168]
push 0x666666
mov eax, dword [ecx]
call dword [eax + 0x130]
mov ecx, dword [edi + 0x168]
push 1
call fcn.00417160
mov ecx, dword [edi + 0x168]
push 0xfffffffffffffff1
call fcn.00416410
mov ecx, dword [edi + 0x168]
push 1
call fcn.00406130
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x47b8f7
lea eax, [edi + 0x134]
test eax, eax
je 0x47b8f7
push eax
push 0x384
call fcn.00401980
push 0x2e8
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x47b91d
mov ecx, eax
call fcn.0040a7b0
mov esi, eax
jmp 0x47b91f
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x160], esi
je 0x47b94e
test esi, esi
je 0x47b938
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x160]
mov dword [edi + 0x160], esi
test eax, eax
je 0x47b94e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x160]
push edi
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x160]
push 1
call fcn.00405f90
mov ecx, dword [edi + 0x160]
push 1
call fcn.00406f40
mov ecx, dword [edi + 0x160]
movaps xmm0, xmmword [0x4d1980]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x160]
movaps xmm0, xmmword [0x4d2040]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0x4d1f6c
lea ecx, [ebp - 0x14]
call fcn.00404260
mov ecx, dword [edi + 0x160]
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 4], 0xb
mov eax, dword [ecx]
call dword [eax + 0x14c]
mov edx, dword [ebp - 0x14]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47b9f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi + 0x160]
push 0xffffff
call fcn.0040c530
mov ecx, dword [edi + 0x160]
push 1
call fcn.0040ca90
mov ecx, dword [edi + 0x160]
push 0xffffffffffffffec
call fcn.0040ec60
movaps xmm0, xmmword [0x4d20d0]
sub esp, 0x10
mov ecx, dword [edi + 0x160]
mov eax, esp
push 3
push 0xa2
movups xmmword [eax], xmm0
call fcn.0040e8d0
mov ecx, dword [edi + 0x160]
test ecx, ecx
je 0x47ba5e
lea eax, [edi + 0x134]
test eax, eax
je 0x47ba5e
push eax
push 0
call fcn.00401980
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x47ba84
mov ecx, eax
call fcn.00409bf0
mov esi, eax
jmp 0x47ba86
xor esi, esi
mov eax, dword [esi]
mov ecx, esi
push edi
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x14]
push 1
mov ecx, esi
call fcn.00405f90
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0xe
mov eax, dword [esi]
call dword [eax + 0x5c]
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0xf
mov dword [eax + 8], 0x14
mov dword [eax + 0xc], 5
mov eax, dword [esi]
call dword [eax + 0x80]
push 2
mov ecx, esi
call fcn.00405fb0
push 0x2e8
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x47bb25
mov ecx, eax
call fcn.0040a7b0
mov ecx, eax
mov dword [ebp - 0x14], eax
jmp 0x47bb2a
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x16c], ecx
je 0x47bb5c
test ecx, ecx
je 0x47bb46
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x16c]
mov dword [edi + 0x16c], ecx
test eax, eax
je 0x47bb5c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x16c]
push esi
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x16c]
push 2
call fcn.00405f90
mov ecx, dword [edi + 0x16c]
push 2
call fcn.00406f40
mov ecx, dword [edi + 0x16c]
movaps xmm0, xmmword [0x4d20c0]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x16c]
xorps xmm0, xmm0
push 1
sub esp, 0x10
mov eax, esp
mov edx, dword [ecx]
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0x4d1f78
lea ecx, [ebp - 0x14]
call fcn.00404260
mov ecx, dword [edi + 0x16c]
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 4], 0xe
mov eax, dword [ecx]
call dword [eax + 0x14c]
mov edx, dword [ebp - 0x14]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47bc01
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movaps xmm0, xmmword [0x4d2060]
mov ecx, dword [edi + 0x16c]
push 1
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0040ee60
mov ecx, dword [edi + 0x16c]
push 0
call fcn.0040ee20
mov ecx, dword [edi + 0x16c]
push 2
call fcn.0040ee40
mov ecx, dword [edi + 0x16c]
push 0x666666
call fcn.0040c530
mov ecx, dword [edi + 0x16c]
push 1
call fcn.0040ca90
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xf
test eax, eax
je 0x47bc7a
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47bc7c
xor esi, esi
push 3
push 0xa3
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [edi + 0x16c]
push esi
call fcn.0040c630
mov ecx, dword [edi + 0x16c]
test ecx, ecx
je 0x47bcb9
lea eax, [edi + 0x134]
test eax, eax
je 0x47bcb9
push eax
push 0
call fcn.00401980
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x10
test eax, eax
je 0x47bce2
mov ecx, eax
call fcn.00409bf0
mov esi, eax
mov dword [ebp - 0x10], eax
jmp 0x47bce7
xor esi, esi
mov dword [ebp - 0x10], esi
mov eax, dword [esi]
mov ecx, esi
push edi
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x14]
push 1
mov ecx, esi
call fcn.00405f90
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x50
mov eax, dword [esi]
call dword [eax + 0x5c]
push 0x190
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x11
test eax, eax
je 0x47bd4e
mov ecx, eax
call fcn.0041e700
mov esi, eax
jmp 0x47bd50
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x170], esi
je 0x47bd7f
test esi, esi
je 0x47bd69
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x170]
mov dword [edi + 0x170], esi
test eax, eax
je 0x47bd7f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x170]
push dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x170]
push 1
call fcn.0041eb90
mov ecx, dword [edi + 0x170]
push 1
call fcn.00405f90
movaps xmm0, xmmword [0x4d20b0]
sub esp, 0x10
mov ecx, dword [edi + 0x170]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00420500
sub esp, 0x10
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 5
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov ecx, dword [edi + 0x170]
call fcn.00420580
mov ecx, dword [edi + 0x170]
movaps xmm0, xmmword [0x4d20f0]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x170]
movaps xmm0, xmmword [0x4d2020]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x12
test eax, eax
je 0x47be4d
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47be4f
xor esi, esi
push 3
push 0xa1
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0x18
mov dword [eax + 4], 0
mov dword [eax + 8], 0x24
mov dword [eax + 0xc], 0xc
call fcn.00410200
mov ecx, dword [edi + 0x170]
push esi
push esi
push esi
call fcn.0041eec0
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x13
test eax, eax
je 0x47bec1
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47bec3
xor esi, esi
push 3
push 0xa1
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
push 1
sub esp, 0x10
mov ecx, esi
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0xc
mov dword [eax + 0xc], 0xc
call fcn.00410200
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x14
test eax, eax
je 0x47bf25
mov ecx, eax
call fcn.0040f720
jmp 0x47bf27
xor eax, eax
push 3
push 0xa1
mov ecx, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
mov ecx, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov eax, esp
mov dword [eax], 0xc
mov dword [eax + 4], 0
mov dword [eax + 8], 0x18
mov dword [eax + 0xc], 0xc
call fcn.00410200
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x170]
push eax
push eax
push esi
call fcn.0041f000
push ecx
mov ecx, esp
push 0x4d1f84
call fcn.00404260
mov ecx, dword [edi + 0x170]
call fcn.0041ebf0
mov ecx, dword [edi + 0x170]
push 0x999999
call fcn.0041ec90
movaps xmm0, xmmword [0x4d1ff0]
sub esp, 0x10
mov ecx, dword [edi + 0x170]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00420540
mov ecx, dword [edi + 0x170]
push 0xfffffffffffffff2
call fcn.0041ecb0
mov ecx, dword [edi + 0x170]
test ecx, ecx
je 0x47bfe8
lea eax, [edi + 0x134]
test eax, eax
je 0x47bfe8
push eax
push 0x190
call fcn.00401980
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x15
test eax, eax
je 0x47c00e
mov ecx, eax
call fcn.00409bf0
mov esi, eax
jmp 0x47c010
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x14c], esi
je 0x47c03f
test esi, esi
je 0x47c029
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x14c]
mov dword [edi + 0x14c], esi
test eax, eax
je 0x47c03f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x14c]
push dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x14c]
push 1
call fcn.00405f90
mov ecx, dword [edi + 0x14c]
movaps xmm0, xmmword [0x4ed720]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x14c]
movaps xmm0, xmmword [0x4d2030]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
mov ecx, dword [edi + 0x14c]
push 2
call fcn.00405fb0
push 0x180
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x16
test eax, eax
je 0x47c0c8
mov ecx, eax
call fcn.00414ce0
mov esi, eax
jmp 0x47c0ca
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x150], esi
je 0x47c0f9
test esi, esi
je 0x47c0e3
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x150]
mov dword [edi + 0x150], esi
test eax, eax
je 0x47c0f9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x150]
push dword [edi + 0x14c]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x150]
push 0
call fcn.00405f90
mov ecx, dword [edi + 0x150]
push 1
call fcn.00405f70
mov ecx, dword [edi + 0x150]
push 1
call fcn.00405f50
push ecx
mov ecx, esp
push 0x4d1f9c
call fcn.00404260
mov ecx, dword [edi + 0x150]
call fcn.00415560
mov ecx, dword [edi + 0x150]
movaps xmm0, xmmword [0x4d2000]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
mov ecx, dword [edi + 0x150]
push 2
call fcn.00406f40
mov ecx, dword [edi + 0x150]
push 0x999999
mov eax, dword [ecx]
call dword [eax + 0x130]
push 0x2e8
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x17
test eax, eax
je 0x47c1ae
mov ecx, eax
call fcn.0040a7b0
mov esi, eax
jmp 0x47c1b0
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x154], esi
je 0x47c1df
test esi, esi
je 0x47c1c9
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x154]
mov dword [edi + 0x154], esi
test eax, eax
je 0x47c1df
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x154]
push dword [edi + 0x14c]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x154]
push 2
call fcn.00405f90
mov ecx, dword [edi + 0x154]
push 2
call fcn.00406f40
mov ecx, dword [edi + 0x154]
movaps xmm0, xmmword [0x4d2110]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x154]
movaps xmm0, xmmword [0x4d2070]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0x4d1fa8
lea ecx, [ebp - 0x10]
call fcn.00404260
mov ecx, dword [edi + 0x154]
lea edx, [ebp - 0x10]
push edx
mov dword [ebp - 4], 0x18
mov eax, dword [ecx]
call dword [eax + 0x14c]
mov edx, dword [ebp - 0x10]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c28d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi + 0x154]
push 1
call fcn.0040ca90
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x19
test eax, eax
je 0x47c2c0
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47c2c2
xor esi, esi
push 3
push 0x8c
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
push 2
mov ecx, esi
call fcn.004101f0
movaps xmm0, xmmword [0x4d20e0]
sub esp, 0x10
mov eax, esp
mov ecx, esi
movups xmmword [eax], xmm0
call fcn.00410340
mov ecx, dword [edi + 0x154]
push esi
call fcn.0040afc0
mov ecx, dword [edi + 0x154]
push esi
call fcn.0040af80
mov ecx, dword [edi + 0x154]
push esi
call fcn.0040c5b0
mov ecx, dword [edi + 0x154]
push esi
call fcn.0040af40
mov ecx, dword [edi + 0x154]
xor eax, eax
cmp dword [0x505280], eax
sete al
mov edx, dword [ecx]
push eax
call dword [edx + 0xf4]
mov ecx, dword [edi + 0x154]
test ecx, ecx
je 0x47c35c
lea eax, [edi + 0x134]
test eax, eax
je 0x47c35c
push eax
push 0
call fcn.00401980
push 0x134
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x1a
test eax, eax
je 0x47c382
mov ecx, eax
call fcn.00409bf0
mov esi, eax
jmp 0x47c384
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x158], esi
je 0x47c3b3
test esi, esi
je 0x47c39d
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x158]
mov dword [edi + 0x158], esi
test eax, eax
je 0x47c3b3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x158]
push dword [edi + 0x14c]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x158]
push 4
call fcn.00405f90
mov ecx, dword [edi + 0x158]
movaps xmm0, xmmword [0x4ed720]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
mov ecx, dword [edi + 0x158]
movaps xmm0, xmmword [0x4d2080]
push 1
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push 0xc0
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x1b
test eax, eax
je 0x47c432
mov ecx, eax
call fcn.0040f720
mov esi, eax
jmp 0x47c434
xor esi, esi
push 3
push 0x8c
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.0040f3f0
push 2
mov ecx, esi
call fcn.004101f0
movaps xmm0, xmmword [0x4d20e0]
sub esp, 0x10
mov eax, esp
mov ecx, esi
movups xmmword [eax], xmm0
call fcn.00410340
mov ecx, dword [edi + 0x158]
push esi
mov eax, dword [ecx]
call dword [eax + 0xa8]
push 0x1a4
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x1c
test eax, eax
je 0x47c49d
mov ecx, eax
call fcn.00420a20
mov esi, eax
jmp 0x47c49f
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x15c], esi
je 0x47c4ce
test esi, esi
je 0x47c4b8
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x15c]
mov dword [edi + 0x15c], esi
test eax, eax
je 0x47c4ce
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi + 0x15c]
push 0x800
call fcn.004215c0
mov ecx, dword [edi + 0x15c]
push dword [edi + 0x158]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x15c]
push 4
call fcn.00405f90
mov eax, dword [0x501094]
cmp eax, 0xffffffff
jne 0x47c5a5
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
jb 0x47c527
movaps xmm0, xmmword [0x4d2090]
mov dword [0x501094], 1
jmp 0x47c538
mov dword [0x501094], 0
movaps xmm0, xmmword [0x4d20a0]
mov ecx, dword [edi + 0x15c]
push 1
sub esp, 0x10
mov eax, esp
mov edx, dword [ecx]
movups xmmword [eax], xmm0
call dword [edx + 0x80]
push ecx
mov ecx, esp
push str.c:program_file_
call fcn.00404260
mov ecx, dword [edi + 0x15c]
call fcn.00420e20
mov ecx, dword [edi + 0x15c]
push 0
mov eax, dword [ecx]
call dword [eax + 0xf4]
mov eax, dword [0x5051cc]
test eax, eax
jne 0x47c5c0
push 0x188
call fcn.00482f1a
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x1d
test eax, eax
je 0x47c5b2
mov ecx, eax
call fcn.0042d300
jmp 0x47c5b4
test eax, eax
je 0x47c531
movaps xmm0, xmmword [0x4d2090]
jmp 0x47c538
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x5051cc], eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [eax + 4]
call fcn.00432f70
push ecx
mov esi, esp
mov dword [ebp - 4], 0x1e
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
push eax
call fcn.004043f0
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov ecx, dword [edi + 0x15c]
call fcn.00420e20
mov edi, dword [edi + 0x160]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [edi]
mov ecx, dword [ecx + 0x164]
call fcn.0041ebe0
push eax
mov ecx, edi
call dword [esi + 0xf4]
mov edx, dword [ebp - 0x18]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c639
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret