Function at 0x438306
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x629d61
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x652018]
xor eax, esp
mov dword [esp + 0x2e0], eax
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [0x65e8d4]
mov ebx, dword [ebp + 8]
add eax, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov word [esp + 0x13c], 0
mov byte [esp + 0x13e], 0
mov dword [esp + 0x138], 8
mov dword [esp + 0x300], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x860]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x160], eax
xor eax, eax
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov byte [esp + 0x300], 1
test byte [ebx + 0x60], 0x40
jne 0x43843a
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x43843a
cmp dword [eax + 0x4c], 1
je 0x43843a
mov ecx, ebx
call 0x3dad86
mov eax, dword [eax + 0x18]
and eax, 3
cmp al, 3
je 0x43843a
mov ecx, ebx
call 0x3dad86
mov ecx, eax
call 0x56f4a6
lea eax, [esp + 0x15c]
mov edx, ebx
push eax
push 0
push 0
lea ecx, [esp + 0x3c]
call fcn.00438046
cmp dword [esp + 0x34], 0
je 0x4392b8
push 0x10
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
call 0x3c2f56
mov byte [esp + 0x300], 2
xor eax, eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
test edx, edx
je 0x438f3e
lea esp, [esp]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x38]
lea ebx, [eax + ecx*4]
xor eax, eax
mov ecx, dword [ebx + 4]
mov dword [esp + 0x50], ebx
test ecx, ecx
je 0x438f2d
jmp 0x4384c6
lea edx, [eax + 1]
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], edx
cmp edx, ecx
jae 0x438f1a
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
mov dword [esp + 0x60], ecx
mov eax, dword [ebx + 8]
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov edi, dword [eax + ecx]
lea ecx, [edx*8]
sub ecx, edx
mov dword [esp + 0x88], edi
shl ecx, 2
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
mov eax, dword [eax + ecx]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], eax
test edi, edi
je 0x438f04
test eax, eax
je 0x438a34
test ebx, ebx
jne 0x438a36
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
test ecx, ecx
je 0x43856c
movzx eax, byte [ecx]
test byte [eax + eax*2 + 0x405211], 0x80
je 0x43856c
mov ecx, dword [ecx + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4d56
mov ecx, eax
xor edi, edi
mov dword [esp + 0x58], edi
call 0x3db536
mov dword [esp + 0x4c], eax
test eax, eax
je 0x438a0f
lea ecx, [ecx]
test ebx, ebx
jne 0x438a0f
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x54]
mov ecx, dword [ecx + edi*4]
call 0x3dc906
mov esi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x54]
mov ecx, dword [ecx + edi*4]
call 0x3dc906
mov edi, eax
mov ecx, esi
push 1
mov edx, edi
call 0x3dccf6
mov ecx, dword [esp + 0x4c]
mov cl, byte [ecx + 0x61]
movzx ecx, cl
sub ecx, ebx
je 0x4389c6
dec ecx
je 0x4387d7
dec ecx
je 0x4385e5
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x4389ef
test al, al
jne 0x4389ef
cmp byte [esi], 0x24
je 0x438668
mov ecx, esi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x438663
cmp eax, 0x16
jne 0x438648
mov eax, dword [esi + 0x54]
test eax, eax
je 0x438620
cmp byte [eax], 0x27
jne 0x438619
cmp dword [eax + 8], 1
je 0x438663
mov eax, dword [eax + 4]
test eax, eax
jne 0x43860e
mov ecx, esi
xor ebx, ebx
call 0x3e0c06
test eax, eax
je 0x438633
mov eax, dword [eax + 0x58]
mov ebx, dword [eax + 0x38]
mov ecx, esi
call 0x3e2896
push ebx
mov edx, eax
mov ecx, esi
call 0x3e2b96
test al, al
jne 0x438663
mov ecx, esi
call 0x3db1c6
cmp eax, 1
je 0x438663
mov ecx, esi
call fcn.00481b76
test al, al
je 0x43870b
cmp byte [esi], 0x24
jne 0x438677
mov ecx, esi
call 0x3e2a46
test al, al
jne 0x43870b
cmp byte [edi], 0x24
je 0x4386ee
mov ecx, edi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x4386e9
cmp eax, 0x16
jne 0x4386d2
mov eax, dword [edi + 0x54]
test eax, eax
je 0x4386aa
cmp byte [eax], 0x27
jne 0x4386a3
cmp dword [eax + 8], 1
je 0x4386e9
mov eax, dword [eax + 4]
test eax, eax
jne 0x438698
mov ecx, edi
xor ebx, ebx
call 0x3e0c06
test eax, eax
je 0x4386bd
mov eax, dword [eax + 0x58]
mov ebx, dword [eax + 0x38]
mov ecx, edi
call 0x3e2896
push ebx
mov edx, eax
mov ecx, edi
call 0x3e2b96
test al, al
jne 0x4386e9
mov ecx, edi
call 0x3db1c6
cmp eax, 1
je 0x4386e9
mov ecx, edi
call fcn.00481b76
test al, al
je 0x43870b
cmp byte [edi], 0x24
jne 0x4386f9
mov ecx, edi
call 0x3e2a46
test al, al
jne 0x43870b
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
inc esi
mov dword [esp + 0x14], esi
jmp 0x4389f3
mov ecx, esi
call 0x3db466
test al, al
jne 0x4389eb
mov ecx, edi
call 0x3db466
test al, al
jne 0x4389eb
cmp byte [esi], 0x24
je 0x43876a
mov ecx, esi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x438765
cmp eax, 0x16
jne 0x43874e
mov ecx, esi
call 0x3e2b46
test al, al
jne 0x438765
mov ecx, esi
call 0x3db1c6
cmp eax, 1
je 0x438765
mov ecx, esi
call fcn.00481b76
test al, al
je 0x4387c9
cmp byte [esi], 0x24
jne 0x438775
mov ecx, esi
call 0x3e2a46
test al, al
jne 0x4387c9
cmp byte [edi], 0x24
je 0x4387ba
mov ecx, edi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x4387b1
cmp eax, 0x16
jne 0x43879a
mov ecx, edi
call 0x3e2b46
test al, al
jne 0x4387b1
mov ecx, edi
call 0x3db1c6
cmp eax, 1
je 0x4387b1
mov ecx, edi
call fcn.00481b76
test al, al
je 0x4387c9
cmp byte [edi], 0x24
jne 0x4389eb
mov ecx, edi
call 0x3e2a46
test al, al
je 0x4389eb
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x4389ef
test al, al
jne 0x4389ef
cmp byte [esi], 0x24
je 0x438860
mov ecx, esi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x43885b
cmp eax, 0x16
jne 0x438840
mov eax, dword [esi + 0x54]
test eax, eax
je 0x438818
lea ebx, [ebx]
cmp byte [eax], 0x27
jne 0x438811
cmp dword [eax + 8], 1
je 0x43885b
mov eax, dword [eax + 4]
test eax, eax
jne 0x438806
mov ecx, esi
xor ebx, ebx
call 0x3e0c06
test eax, eax
je 0x43882b
mov eax, dword [eax + 0x58]
mov ebx, dword [eax + 0x38]
mov ecx, esi
call 0x3e2896
push ebx
mov edx, eax
mov ecx, esi
call 0x3e2b96
test al, al
jne 0x43885b
mov ecx, esi
call 0x3db1c6
cmp eax, 1
je 0x43885b
mov ecx, esi
call fcn.00481b76
test al, al
je 0x43870b
cmp byte [esi], 0x24
jne 0x43886f
mov ecx, esi
call 0x3e2a46
test al, al
jne 0x43870b
cmp byte [edi], 0x24
je 0x4388f0
mov ecx, edi
call 0x3db1c6
cmp byte [eax + 0x406e3c], 0
jne 0x4388eb
cmp eax, 0x16
jne 0x4388d0
mov eax, dword [edi + 0x54]
test eax, eax
je 0x4388a8
lea ebx, [ebx]
cmp byte [eax], 0x27
jne 0x4388a1
cmp dword [eax + 8], 1
je 0x4388eb
mov eax, dword [eax + 4]
test eax, eax
jne 0x438896
mov ecx, edi
xor ebx, ebx
call 0x3e0c06
test eax, eax
je 0x4388bb
mov eax, dword [eax + 0x58]
mov ebx, dword [eax + 0x38]
mov ecx, edi
call 0x3e2896
push ebx
mov edx, eax
mov ecx, edi
call 0x3e2b96
test al, al
jne 0x4388eb
mov ecx, edi
call 0x3db1c6
cmp eax, 1
je 0x4388eb
mov ecx, edi
call fcn.00481b76
test al, al
je 0x43870b
cmp byte [edi], 0x24
jne 0x4388ff
mov ecx, edi
call 0x3e2a46
test al, al
jne 0x43870b
mov al, byte [esi]
cmp al, 0x29
jne 0x43891d
mov ecx, dword [esi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4c76
jmp 0x43892c
movzx eax, al
mov al, byte [eax + eax*2 + 0x405210]
shr al, 4
and al, 1
test al, al
je 0x43895c
cmp byte [esi], 0x29
jne 0x43894d
mov ecx, dword [esi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4cb6
jmp 0x43894f
mov eax, esi
test byte [eax + 0x92], 1
jne 0x43870b
mov al, byte [edi]
cmp al, 0x29
jne 0x43897a
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4c76
jmp 0x438989
movzx eax, al
mov al, byte [eax + eax*2 + 0x405210]
shr al, 4
and al, 1
test al, al
je 0x4386f9
cmp byte [edi], 0x29
jne 0x4389b8
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4cb6
test byte [eax + 0x92], 1
jmp 0x4386f7
mov eax, edi
test byte [eax + 0x92], 1
jmp 0x4386f7
test al, al
jne 0x4389ef
mov ecx, esi
call 0x3db466
test al, al
jne 0x4389ef
mov ecx, edi
call 0x3db466
test al, al
jne 0x4389ef
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x4389ef
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
inc edi
mov dword [esp + 0x58], edi
mov eax, dword [eax + 0x50]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x438586
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x88]
mov ecx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x54], eax
test ecx, ecx
jne 0x438529
test ebx, ebx
jg 0x438f00
test esi, esi
je 0x438f00
mov ebx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x64]
add ecx, 4
mov eax, dword [ebx + 8]
add eax, ecx
lea ecx, [esp + 0xd8]
push eax
call fcn.00444fe6
mov byte [esp + 0x300], 3
lea ecx, [esp + 0x104]
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
je 0x438dd1
mov esi, dword [esp + 0x40]
jmp 0x438aa6
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x104]
lea edx, [esp + 0x1b4]
push edx
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 8]
push ecx
lea ecx, [esp + 0x90]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 8]
add eax, 4
add eax, esi
push eax
call fcn.00444fe6
mov byte [esp + 0x300], 4
lea ecx, [esp + 0xbc]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
je 0x438c75
lea ecx, [ecx]
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0xbc]
lea edx, [esp + 0x1bc]
push edx
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [esp + 0x74]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00445d26
test al, al
je 0x438b9a
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x7c]
call fcn.00445d26
test al, al
je 0x43911d
mov eax, dword [esp + 0x194]
cmp eax, dword [esp + 0x24]
jne 0x438bcf
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x74]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x140], eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x148], edi
push eax
mov dword [esp + 0x150], ebx
call 0x444bb6
jmp 0x438bd3
mov ebx, dword [esp + 0x5c]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x7c]
call fcn.00445d26
test al, al
je 0x438c15
lea eax, [esp + 0x1a4]
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x7c]
call fcn.00445d26
test al, al
je 0x439156
mov eax, dword [esp + 0x1a4]
cmp eax, dword [esp + 0x20]
jne 0x438c44
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x74]
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x154], ebx
push eax
mov dword [esp + 0x15c], edi
call 0x444bb6
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0xbc]
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x438b26
mov ebx, dword [esp + 0x50]
mov byte [esp + 0x300], 3
lea eax, [esp + 0xd4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xa4], 0x425e38
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 8]
mov dword [esp + eax + 0xa4], 0x428d44
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x30]
mov dword [esp + ecx + 0xa0], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 8]
lea eax, [ecx - 0x38]
mov dword [esp + ecx + 0xa0], eax
mov byte [esp + 0x300], 3
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xa8], 0x425e44
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 8]
mov dword [esp + eax + 0xa8], 0x42c050
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0xa4], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
lea eax, [ecx - 0x20]
mov dword [esp + ecx + 0xa4], eax
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x438d4e
mov eax, dword [ecx]
call dword [eax]
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xcc]
lea ecx, [esp + 0x104]
mov dword [esp + 0xc8], 0x41eec8
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xcc], 0x40bbe4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc0], 0x40bbd8
mov dword [esp + 0x9c], 0x41eec8
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xa0], 0x40bbe4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x94], 0x40bbd8
mov eax, dword [eax + 0xc]
add ecx, eax
mov eax, dword [ecx - 0x2c]
add ecx, 0xffffffd4
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x438aa6
mov byte [esp + 0x300], 2
lea eax, [esp + 0x11c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xec], 0x425e38
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 8]
mov dword [esp + eax + 0xec], 0x428d44
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x30]
mov dword [esp + ecx + 0xe8], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 8]
lea eax, [ecx - 0x38]
mov dword [esp + ecx + 0xe8], eax
mov byte [esp + 0x300], 2
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xf0], 0x425e44
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 8]
mov dword [esp + eax + 0xf0], 0x42c050
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0xec], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 8]
lea eax, [ecx - 0x20]
mov dword [esp + ecx + 0xec], eax
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x438eaa
mov eax, dword [ecx]
call dword [eax]
mov dword [esp + 0x100], 0
mov eax, dword [esp + 0x114]
mov dword [esp + 0x110], 0x41eec8
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x114], 0x40bbe4
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x108], 0x40bbd8
mov dword [esp + 0xe4], 0x41eec8
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe8], 0x40bbe4
mov dword [esp + 0xdc], 0x40bbd8
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x50]
inc edx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x2c], edx
cmp edx, dword [ebx + 4]
jb 0x4384e9
mov eax, dword [esp + 0x48]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jb 0x4384c6
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edx
jb 0x4384a6
cmp dword [esp + 0x7c], 0
je 0x4392a7
push ecx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x174]
call 0x4450e6
mov byte [esp + 0x300], 9
lea ecx, [esp + 0x184]
call fcn.00445206
test al, al
je 0x439293
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x188]
call fcn.00445366
lea ecx, [esp + 0x184]
mov ebx, dword [eax + 0xc]
lea eax, [esp + 0x1a4]
push eax
call fcn.00445366
lea ecx, [esp + 0x184]
mov edi, dword [eax]
lea eax, [esp + 0x194]
push eax
call fcn.00445366
lea ecx, [esp + 0x184]
mov esi, dword [eax + 4]
lea eax, [esp + 0x14c]
push eax
mov dword [esp + 0x2c], esi
call fcn.00445366
mov ecx, dword [eax + 8]
test ebx, ebx
je 0x43918f
test edi, edi
je 0x43918f
test esi, esi
je 0x43918f
test ecx, ecx
je 0x43918f
mov ecx, dword [ecx + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, dword [esp + 0x28]
mov esi, eax
mov ecx, dword [ecx + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
push 1
mov edx, esi
mov ecx, eax
call 0x3dccf6
test al, al
je 0x43918f
mov ecx, ebx
call 0x3dd2c6
test al, al
jne 0x43927f
mov ecx, edi
call 0x3dd2c6
test al, al
jne 0x43927f
push ecx
lea ecx, [esp + 0x1c8]
call fcn.00415376
mov byte [esp + 0x300], 0xa
lea ecx, [esp + 0x1c4]
mov eax, dword [esp + 0x1c]
push 0
push 0
push 0
mov eax, dword [eax]
push 1
push 0
push 0
push ecx
push dword [esp + 0x58]
push dword [eax + 0x860]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3dd796
mov eax, dword [esp + 0x1e0]
mov ecx, dword [edi + 8]
mov dword [esp + 0x48], eax
call 0x3dc906
mov ecx, dword [ebx + 8]
mov esi, eax
call 0x3dc906
mov ecx, dword [esp + 0x1c]
mov edi, eax
push esi
call fcn.0043d2c6
mov ecx, dword [esp + 0x1c]
mov esi, eax
push edi
call fcn.0043d2c6
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov edi, eax
call fcn.00447336
test eax, eax
je 0x439104
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x60]
push esi
push edi
push ebx
push 0xa55d
push eax
call 0x3cd2f6
add esp, 0x30
mov byte [esp + 0x300], 9
lea ecx, [esp + 0x1c4]
call 0x3cc2f6
jmp 0x43927f
lea ecx, [esp + 0x64]
call dword [0x660330]
mov byte [esp + 0x300], 5
mov dword [esp + 0x64], 0x40cc48
mov dword [esp + 0x70], 0x41edf0
mov byte [esp + 0x300], 4
lea eax, [esp + 0x64]
push 0x651bb0
push eax
call 0x5a4c6c
lea ecx, [esp + 0x64]
call dword [0x660330]
mov byte [esp + 0x300], 6
mov dword [esp + 0x64], 0x40cc48
mov dword [esp + 0x70], 0x41edf0
mov byte [esp + 0x300], 4
lea eax, [esp + 0x64]
push 0x651bb0
push eax
call 0x5a4c6c
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x3c]
test byte [eax + 0x1c], 4
jne 0x4391a5
mov eax, dword [eax + 8]
jmp 0x43925a
mov cl, byte [ebx]
movzx eax, cl
test byte [eax + eax*2 + 0x405210], 8
je 0x4391da
test byte [eax + eax*2 + 0x405211], 0x80
je 0x4391d6
mov ecx, dword [ebx + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4d56
jmp 0x43924f
mov eax, ebx
jmp 0x43924f
cmp cl, 5
jne 0x439216
mov eax, dword [ebx + 0x5c]
test eax, eax
jne 0x439253
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x43920d
mov al, byte [ecx]
cmp al, 5
jne 0x4391f9
cmp dword [ecx + 0x5c], 0
jne 0x439211
movzx eax, al
test byte [eax + eax*2 + 0x405210], 8
jne 0x4391cf
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4391ed
xor eax, eax
jmp 0x43924f
mov eax, dword [ecx + 0x5c]
jmp 0x43924f
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x439237
mov al, byte [ecx]
cmp al, 5
je 0x43924a
movzx eax, al
test byte [eax + eax*2 + 0x405210], 8
jne 0x4391cf
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x43921d
xor eax, eax
test eax, eax
je 0x439258
cmp dword [eax + 0x4c], 0
jne 0x439258
add eax, 0x1c4
jmp 0x43925a
call 0x3e9cb6
test eax, eax
je 0x439237
mov eax, dword [eax + 0x50]
jmp 0x439239
xor eax, eax
test eax, eax
je 0x43927f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push 0x781b
push eax
call 0x3cd2f6
add esp, 0x30
lea ecx, [esp + 0x184]
call fcn.00445206
test al, al
jne 0x438f77
mov byte [esp + 0x300], 2
lea ecx, [esp + 0x16c]
call fcn.004393e6
mov byte [esp + 0x300], 1
lea ecx, [esp + 0x74]
call fcn.00444b56
mov byte [esp + 0x300], 0
xor esi, esi
cmp dword [esp + 0x34], esi
jbe 0x4392e0
xor edi, edi
mov ecx, dword [esp + 0x38]
lea ecx, [edi + ecx]
call fcn.004448f6
inc esi
lea edi, [edi + 0xc]
cmp esi, dword [esp + 0x34]
jb 0x4392ca
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4392f7
push eax
push 0
push dword [0x65e8d0]
call dword [0x66016c]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x300], 0xffffffff
lea ecx, [esp + 0x120]
call 0x3bd036
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2e0]
xor ecx, esp
call 0x59f177
mov esp, ebp
pop ebp
ret 8