Function at 0x4395c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x43aa5d
mov edx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
mov edi, 4
cmp eax, 2
jne 0x439a99
cmp dword [ebx + 0x68], 0
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0x44]
jne 0x43964f
and ecx, 0xfffffff9
mov dword [eax + 0x44], ecx
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x43a8b7
shl eax, 5
push eax
push dword [ebx + 0x54]
push dword [ebx + 0x50]
call fcn.004d6950
mov eax, dword [ebx + 0x70]
add esp, 0xc
shl eax, 2
push eax
push dword [ebx + 0x60]
push dword [ebx + 0x5c]
call fcn.004d6950
mov eax, dword [ebx + 0x70]
add esp, 0xc
mov dword [ebx + 0x68], eax
mov dword [ebx + 0x70], 0
jmp 0x43a8a4
and ecx, 0xfffffffb
mov dword [ebp - 0xc], 4
mov dword [eax + 0x44], ecx
lea esi, [ebx + 0x7c]
dec dword [ebx + 0x68]
mov ecx, dword [ebx + 0x68]
mov eax, ecx
shl eax, 5
add eax, dword [ebx + 0x50]
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [ebx + 0x5c]
movups xmmword [esi + 0x10], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0xc]
mov dword [ebx + 0xbc], eax
mov eax, dword [ebx + 0x1e8]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [eax + 0x470]
push esi
push 0x5aa01092
call fcn.00419020
cmp eax, 1
je 0x439835
cmp dword [ebp - 0xc], 4
je 0x4396d6
mov ecx, dword [ebx + 0x1e8]
lea eax, [ebp - 0x10]
push eax
push esi
mov dword [ebp - 0x10], 4
mov ecx, dword [ecx + 0x4a8]
call fcn.00409600
mov esi, dword [ebp - 0x20]
mov edi, dword [ebx + 0x1e8]
mov dword [ebp - 8], esi
test esi, 0x10000
je 0x43978f
cmp dword [edi + 8], 0
je 0x439751
cmp dword [edi + 0x408], 1
jne 0x439751
mov ecx, dword [edi + 0x474]
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00430e40
mov esi, dword [ebp - 0x24]
mov ecx, edi
inc esi
call fcn.00495cf0
mov ecx, 1
cmp ecx, esi
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, 2
mov eax, 1
cmove edx, ecx
cmp esi, dword [edi + 0x324]
cmovae edx, eax
test edx, edx
je 0x439780
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x439780
cmp eax, 1
je 0x439780
cmp eax, 2
je 0x439780
cmp eax, 6
je 0x439780
cmp eax, 0x7d0
je 0x439780
cmp eax, 0x7d1
je 0x439780
cmp eax, 0x7d5
jne 0x43a8a4
mov eax, dword [ebx + 0x14]
mov esi, dword [ebp - 8]
or dword [eax + 0x44], 4
jmp 0x439815
cmp dword [edi + 8], 0
je 0x4397e6
cmp dword [edi + 0x408], 1
jne 0x4397e6
mov ecx, dword [edi + 0x474]
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.00430e40
mov ecx, edi
mov dword [ebp - 8], 1
call fcn.00495cf0
cmp eax, 2
je 0x4397db
mov eax, dword [ebp - 0x28]
inc eax
cmp dword [ebp - 0x2c], eax
ja 0x4397df
xor eax, eax
jmp 0x4397e2
mov eax, dword [ebp - 8]
test eax, eax
je 0x439815
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x439815
cmp eax, 1
je 0x439815
cmp eax, 2
je 0x439815
cmp eax, 6
je 0x439815
cmp eax, 0x7d0
je 0x439815
cmp eax, 0x7d1
je 0x439815
cmp eax, 0x7d5
jne 0x43a8a4
and esi, 1
mov dword [ebx + 0xe8], 0
inc esi
mov dword [ebx + 0x48], 4
mov dword [ebx + 0xe4], esi
jmp 0x43a8a4
mov eax, dword [ebx + 0x1e8]
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [eax + 0x470]
push esi
push 0x7fa8011c
call fcn.00419020
cmp eax, 1
je 0x43992a
cmp dword [ebp - 0xc], 4
mov eax, dword [ebp - 0x10]
cmovne eax, edi
test byte [ebp - 0x20], 2
mov dword [ebp - 0x10], eax
jne 0x43990a
test eax, eax
je 0x43990a
cmp eax, 1
je 0x43990a
cmp eax, 2
je 0x43990a
cmp eax, 6
je 0x43990a
cmp eax, 0x7d0
je 0x43990a
cmp eax, 0x7d1
je 0x43990a
cmp eax, 0x7d5
je 0x43990a
mov esi, dword [ebx + 0x1e8]
cmp dword [esi + 8], 0
je 0x43a8a4
cmp dword [esi + 0x408], 1
jne 0x43a8a4
mov ecx, dword [esi + 0x474]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00430e40
mov ecx, esi
mov edi, 1
call fcn.00495cf0
cmp eax, 2
je 0x439900
mov eax, dword [ebp - 0x30]
inc eax
cmp dword [ebp - 0x34], eax
ja 0x439902
xor edi, edi
test edi, edi
jne 0x43a8a4
mov dword [ebx + 0xe8], 0
mov dword [ebx + 0x48], 4
mov dword [ebx + 0xe4], 3
jmp 0x43a8a4
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0xbc]
mov dword [ebp - 8], eax
test esi, esi
je 0x43a8a4
lea edi, [eax + 4]
push edi
call dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xd0]
push eax
push esi
call fcn.0042ceb0
push edi
mov esi, eax
call dword [ebp - 0x14]
test esi, esi
jne 0x43a8a4
test byte [ebp - 0x9c], 0x80
mov edi, dword [ebx + 0x1e8]
je 0x439a05
cmp dword [edi + 8], esi
je 0x4399d8
cmp dword [edi + 0x408], 1
jne 0x4399d8
mov ecx, dword [edi + 0x474]
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.00430e40
mov esi, dword [ebp - 0x38]
mov ecx, edi
inc esi
call fcn.00495cf0
mov ecx, 1
cmp ecx, esi
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, 2
mov eax, 1
cmove edx, ecx
cmp esi, dword [edi + 0x324]
cmovae edx, eax
test edx, edx
je 0x4399fc
mov eax, dword [ebp - 0x90]
shr eax, 8
dec eax
movzx eax, al
test eax, eax
je 0x4399fc
cmp eax, 1
je 0x4399fc
cmp eax, 2
je 0x4399fc
cmp eax, 6
jne 0x43a8a4
mov eax, dword [ebx + 0x14]
or dword [eax + 0x44], 4
jmp 0x439a79
cmp dword [edi + 8], 0
je 0x439a55
cmp dword [edi + 0x408], 1
jne 0x439a55
mov ecx, dword [edi + 0x474]
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00430e40
mov ecx, edi
mov esi, 1
call fcn.00495cf0
cmp eax, 2
je 0x439a4f
mov eax, dword [ebp - 0x3c]
inc eax
cmp dword [ebp - 0x40], eax
ja 0x439a51
xor esi, esi
test esi, esi
je 0x439a79
mov eax, dword [ebp - 0x90]
shr eax, 8
dec eax
movzx eax, al
test eax, eax
je 0x439a79
cmp eax, 1
je 0x439a79
cmp eax, 2
je 0x439a79
cmp eax, 6
jne 0x43a8a4
mov dword [ebx + 0xe8], 0
mov dword [ebx + 0x48], 4
mov dword [ebx + 0xe4], 0
jmp 0x43a8a4
cmp eax, 4
jne 0x43a161
mov ecx, dword [ebx + 8]
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 0x34]
mov eax, dword [ebx + 0xc]
lea edi, [ebx + 0x7c]
add eax, 0x10
mov dword [ebp - 0xc], 0x40000
push eax
push edi
call fcn.004a73f0
test eax, eax
jne 0x43a0db
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebx + 0xc]
push edi
push esi
push dword [ebx + 0x34]
call fcn.004ace30
test eax, eax
jne 0x43a0db
test byte [ebx + 0xe8], 1
mov eax, dword [ebx + 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
je 0x439b08
mov ecx, dword [ebx + 0x1e8]
push 0
push edi
mov ecx, dword [ecx + 0x478]
call fcn.0045bf70
mov eax, dword [ebx + 0xe4]
cmp eax, 1
jne 0x439b51
push esi
push dword [ebx + 0x34]
push ecx
push 0
push ecx
mov ecx, dword [ebx + 0x1e8]
push edi
push 0x5aa01092
mov ecx, dword [ecx + 0x470]
call fcn.00403620
push edi
push ecx
mov ecx, dword [ebx + 0x1e8]
mov ecx, dword [ecx + 0x470]
call fcn.0041a050
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
cmp eax, 2
je 0x43a0cf
cmp eax, 3
je 0x43a0cf
mov eax, dword [ebx + 0x1e8]
push edi
mov eax, dword [eax + 0x4d8]
mov ecx, dword [eax + 0xbc]
call fcn.00426dd0
test eax, eax
je 0x43a0cf
mov esi, dword [ebx + 0x34]
mov eax, dword [esi]
test eax, eax
jne 0x439f94
mov eax, dword [esi + 4]
add eax, 0x14
lea ecx, [esi + eax*2]
mov eax, dword [ebx + 0x1e8]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0x4d8]
mov eax, dword [eax + 0xbc]
mov dword [ebp - 8], eax
test edi, edi
je 0x439bdb
lea esi, [eax + 4]
push esi
call dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xd0]
push eax
push edi
call fcn.0042ceb0
push esi
mov dword [ebp - 8], eax
call dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 8]
jmp 0x439be0
mov esi, 1
mov edx, dword [ebp - 0x9c]
test dl, dl
js 0x439f1c
test edx, 0x200
jne 0x439c17
mov eax, dword [ebx + 0x1e8]
shr edx, 2
and edx, 1
push edx
mov eax, dword [eax + 0x4d8]
push ecx
mov ecx, dword [eax + 0xbc]
call fcn.0042b720
jmp 0x439c19
xor eax, eax
test esi, esi
jne 0x439c8a
test eax, eax
jne 0x439c8a
mov eax, dword [ebx + 0x34]
mov edx, dword [ebp - 0x9c]
or edx, 8
mov dword [ebp - 0x9c], edx
movzx ecx, byte [eax]
mov eax, dword [ebp - 0x90]
inc ecx
and eax, 0xffff00ff
shl ecx, 8
or ecx, eax
mov eax, dword [ebx + 0x1e8]
mov dword [ebp - 0x90], ecx
mov eax, dword [eax + 0x4d8]
test dl, 4
jne 0x439ce2
cmp dword [ebp - 0xc0], 3
mov edi, dword [eax + 0xbc]
jge 0x439c8a
lea esi, [edi + 4]
push esi
call dword [ebp - 0x18]
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
call fcn.00429810
push esi
call dword [ebp - 0x14]
mov eax, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x70]
shr eax, 5
cmp edx, eax
jae 0x43a0c5
mov esi, dword [ebp - 4]
mov ecx, dword [ebx + 0x54]
shl edx, 5
mov eax, dword [esi]
mov dword [edx + ecx], eax
mov eax, dword [esi + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [edx + ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + ecx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edx + ecx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edx + ecx + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [edx + ecx + 0x1c], eax
inc dword [ebx + 0x70]
jmp 0x43a0c5
cmp dword [ebp - 0xc0], 3
mov eax, dword [eax + 0xbc]
mov dword [ebp - 8], eax
jge 0x439d0e
lea esi, [eax + 4]
push esi
call dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xd0]
push eax
call fcn.00429810
push esi
call dword [ebp - 0x14]
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x10], 0
mov ecx, dword [eax + 4]
cmp dword [eax + ecx*2 + 8], 0
je 0x439ea2
add eax, 0x48
mov esi, 0x24
lea ecx, [eax + ecx*2]
mov eax, dword [ebx + 0x1e8]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax + 0x24]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x439ea2
add ecx, 4
add edx, 4
sub esi, 4
jae 0x439d40
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0xc]
push dword [ebx + 0x34]
call fcn.004aeea0
test eax, eax
jne 0x439ea2
mov ecx, dword [ebx + 0x1e8]
movsd xmm0, qword [ebp - 0x58]
movsd xmm1, qword [ecx + 0x348]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x439e68
lea eax, [ecx + 0x330]
push eax
call dword [ebp - 0x18]
mov ecx, dword [ebx + 0x1e8]
mov eax, dword [ebx + 0x7c]
movsd xmm0, qword [ebp - 0x58]
mov dword [ecx + 0x368], eax
mov eax, dword [ebx + 0x80]
mov dword [ecx + 0x36c], eax
mov eax, dword [ebx + 0x84]
mov dword [ecx + 0x370], eax
mov eax, dword [ebx + 0x88]
mov dword [ecx + 0x374], eax
mov eax, dword [ebx + 0x8c]
mov dword [ecx + 0x378], eax
mov eax, dword [ebx + 0x90]
mov dword [ecx + 0x37c], eax
mov eax, dword [ebx + 0x94]
mov dword [ecx + 0x380], eax
mov eax, dword [ebx + 0x98]
mov dword [ecx + 0x384], eax
mov eax, dword [ebx + 0x1e8]
movsd qword [eax + 0x350], xmm0
mov ecx, dword [ebx + 0x1e8]
ucomisd xmm0, qword [ecx + 0x3b0]
lahf
test ah, 0x44
jp 0x439e4d
movups xmm0, xmmword [ecx + 0x3b8]
movups xmmword [ecx + 0x388], xmm0
movups xmm0, xmmword [ecx + 0x3c8]
movups xmmword [ecx + 0x398], xmm0
movq xmm0, qword [ecx + 0x3d8]
movq qword [ecx + 0x3a8], xmm0
mov eax, dword [ebx + 0x1e8]
add eax, 0x330
push eax
call dword [ebp - 0x14]
mov dword [ebp - 0x10], 1
jmp 0x439c8a
comisd xmm0, xmm1
jbe 0x439e96
lea eax, [ebp - 0x44]
mov dword [ecx + 0x250], 1
mov esi, dword [ebx + 0x1e8]
push eax
push ecx
push dword [ebx + 0x34]
call fcn.004abd50
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [esi + 0x258], eax
mov dword [ebp - 0x10], 1
jmp 0x439c8a
mov eax, dword [ebx + 0x1e8]
mov eax, dword [eax + 0x4d8]
mov esi, dword [eax + 0xbc]
test edi, edi
je 0x439ef2
mov eax, dword [esi + 0x70]
mov eax, dword [eax + 0x49c]
mov eax, dword [eax + 8]
cmp dword [eax + 0x20], 0
jne 0x439ef2
lea eax, [esi + 4]
push eax
mov dword [ebp - 8], eax
call dword [ebp - 0x18]
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
lea eax, [ebp - 0x4c]
push eax
push edi
call fcn.004294b0
mov eax, dword [ebp - 0x48]
test eax, eax
jne 0x439efe
mov eax, dword [ebp - 8]
push eax
call dword [ebp - 0x14]
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
push eax
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0042cfe0
lea eax, [esi + 4]
push eax
call dword [ebp - 0x14]
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
mov ecx, dword [ebx + 0x10]
push 0
push edi
mov ecx, dword [ecx + 0xbc]
call fcn.0042ab40
mov ecx, dword [ebx + 0x20]
mov dword [ecx], 0xf
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 1
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], 0
add ecx, 0x34
push ecx
push 0x7d0
push 6
mov dword [ecx], 0
mov eax, dword [ebx + 0x20]
sub ecx, eax
add ecx, 4
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
cmp eax, 5
jne 0x43a006
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push 0
mov dword [ebx + 0xc0], edx
mov dword [ebx + 0xc4], ecx
mov eax, dword [esi + 0x14]
push eax
push ecx
push edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov dword [ebx + 0xc8], eax
call fcn.004f3670
or eax, edx
je 0x439fd2
mov edi, 1
jmp 0x439fd4
xor edi, edi
push 0
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp - 0x1c]
call fcn.004f35c0
add eax, edi
mov ecx, ebx
mov dword [ebx + 0xcc], eax
lea eax, [esi + 0x18]
push eax
push dword [ebp - 4]
call fcn.004351a0
mov dword [ebx + 0x48], 0x28
jmp 0x43a8a4
cmp eax, 1
je 0x43a014
cmp eax, 2
jne 0x439ef2
mov eax, dword [ebx + 0x1e8]
mov eax, dword [eax + 0x4d8]
mov esi, dword [eax + 0xbc]
test edi, edi
je 0x43a069
lea edi, [esi + 4]
push edi
call dword [ebp - 0x18]
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
lea eax, [ebx + 0x7c]
push eax
call fcn.0042ceb0
push edi
mov esi, eax
call dword [ebp - 0x14]
test esi, esi
jne 0x43a069
test byte [ebp - 0x9c], 0x80
je 0x43a069
mov ecx, dword [ebx + 0x10]
lea eax, [ebx + 0x7c]
push esi
push eax
mov ecx, dword [ecx + 0xbc]
call fcn.0042ab40
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax]
mov dword [ecx], 0xf
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], 0
add ecx, 0x34
push ecx
push 0x7d0
push 6
mov dword [ecx], 0
mov eax, dword [ebx + 0x20]
sub ecx, eax
add ecx, 4
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
mov dword [ebx + 0xbc], 0x1ffff
mov dword [ebx + 0x48], 0x14
jmp 0x43a8a4
mov eax, dword [ebx + 0xe8]
test al, 1
je 0x43a0f1
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
mov ecx, dword [ebx + 0xc]
or eax, 1
mov dword [ebx + 0xe8], eax
mov eax, dword [ebx + 0x48]
mov dword [ebx + 0xdc], 0
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x9c], eax
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0xa0], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0xa4], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0xa8], eax
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0xac], eax
mov eax, dword [ecx + 0x24]
mov dword [ebx + 0xb0], eax
mov eax, dword [ecx + 0x28]
mov dword [ebx + 0xb4], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0x48], 0x64
jmp 0x43a8a4
cmp eax, 0x14
jne 0x43a250
mov ecx, dword [ebx + 0xbc]
lea edi, [ebx + 0x7c]
movzx edx, cx
shr ecx, 0x10
mov dword [ebx + 0x78], 0
and ecx, 1
jne 0x43a18d
test edx, edx
je 0x439ef2
mov esi, dword [ebx + 0x20]
mov dword [ebp - 0x78], ebx
push ecx
mov dword [esi], 0x19
lea eax, [esi + 0x34]
mov dword [esi + 4], 0
movups xmm0, xmmword [edi]
mov dword [ebp - 8], eax
movups xmmword [esi + 8], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x18], xmm0
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], ecx
add esi, 0x38
mov dword [eax], 0
mov eax, dword [ebx + 0x1e8]
mov eax, dword [eax + 0x4a4]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x78]
push eax
push 0x4386d0
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebx + 8]
push edi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0x3fc00
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], 0
call fcn.004a7580
test eax, eax
jne 0x439ef2
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x6c]
mov dword [ecx], eax
mov ecx, 0x3fc00
sub ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0x20]
push ecx
push 0x7d0
sub ecx, eax
push 2
add ecx, esi
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
test eax, eax
je 0x43a92b
mov dword [ebx + 0x48], 2
jmp 0x43a8a4
cmp eax, 0x16
jne 0x43a2e4
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
jae 0x43a2d3
mov ecx, dword [ebx + 0x20]
shl eax, 5
add eax, dword [ebx + 0x58]
mov dword [ecx], 0x1a
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0xc], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x1c], xmm0
add ecx, 0x2c
movups xmm0, xmmword [eax]
push ecx
push 0
movups xmmword [ecx], xmm0
push 2
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [ebx + 0x20]
sub ecx, eax
add ecx, 0x20
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
test eax, eax
jne 0x43a2d3
mov eax, dword [ebx + 0x78]
inc eax
mov dword [ebx + 0x144], 1
mov dword [ebx + 0x78], eax
cmp eax, dword [ebx + 0x74]
jb 0x43a261
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
jb 0x43a9eb
jmp 0x43a6f3
cmp eax, 0x28
je 0x43a9f4
cmp eax, 0x2a
jne 0x43a709
mov eax, dword [ebx + 0x10]
lea esi, [ebx + 0x7c]
mov dword [ebp - 4], esi
mov eax, dword [eax + 0xbc]
mov dword [ebp - 8], eax
test esi, esi
je 0x439ef2
lea edi, [eax + 4]
push edi
call edx
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xd0]
push eax
push esi
call fcn.0042ceb0
push edi
mov esi, eax
call dword [ebp - 0x14]
test esi, esi
jne 0x439ef2
cmp dword [ebp - 0xc0], 1
jne 0x439ef2
mov edx, dword [ebx + 0x78]
cmp edx, dword [ebx + 0x74]
jae 0x43a3a2
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
cmp dword [eax + ecx*8 + 0x24], esi
lea ecx, [eax + ecx*8]
je 0x43a397
movups xmm0, xmmword [ecx]
movups xmmword [ebx + 0x9c], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [ebx + 0xac], xmm0
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0xec], eax
mov eax, dword [ecx + 0x24]
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0xdc], 2
mov dword [ebx + 0x4c], 0x2a
mov dword [ebx + 0x48], 0x64
lea eax, [edx + 1]
mov dword [ebx + 0x78], eax
jmp 0x43a8a4
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov eax, dword [edx + 0x94]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push dword [edx + 0xa0]
lea eax, [edx + 0x30]
push eax
push dword [ebp - 4]
call fcn.004a73f0
test eax, eax
jne 0x43a6f3
push dword [ebx + 0xcc]
mov eax, dword [ebx + 0xc]
push dword [ebp - 0xc]
push dword [eax + 0xa0]
call fcn.004abde0
test eax, eax
jne 0x43a6f3
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0xc0]
mov ecx, dword [ebx + 0xc4]
mov eax, dword [eax + 0xa0]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
cmp esi, edx
jne 0x43a55b
cmp ecx, eax
jne 0x43a55d
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 0xbc]
lea edi, [esi + 4]
push edi
call dword [ebp - 0x18]
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
push dword [ebp - 4]
call fcn.0042ceb0
push edi
mov esi, eax
call dword [ebp - 0x14]
test esi, esi
jne 0x43a6f3
cmp dword [ebp - 0xc0], 1
jne 0x43a6f3
test byte [ebp - 0x9c], 0x80
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0xbc]
jne 0x43a4cc
push dword [ebp - 4]
call fcn.0042b3a0
test eax, eax
jne 0x43a4da
mov ecx, dword [ebx + 0x1c]
call fcn.00409ee0
mov ecx, dword [ebx + 0x20]
lea edi, [ebx + 0x20]
mov dword [ecx], 0x10
mov dword [ecx + 4], 5
mov dword [ecx + 8], 1
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0xc], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x1c], xmm0
mov dword [ecx + 0x2c], esi
add ecx, 0x30
mov dword [ecx], eax
mov eax, dword [edi]
sub ecx, eax
add ecx, 4
push ecx
mov ecx, dword [ebx + 0x1e8]
push eax
mov ecx, dword [ecx + 0x4dc]
call fcn.0045a1d0
jmp 0x43a4dd
mov esi, dword [ebp - 4]
push 0
push esi
call fcn.0042ab40
mov dword [ebp - 4], esi
lea edi, [ebx + 0x20]
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 0xbc]
lea eax, [esi + 4]
push eax
call dword [ebp - 0x18]
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 4]
call fcn.004294b0
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x43a50d
mov byte [eax + 0x42], 0
lea eax, [esi + 4]
push eax
call dword [ebp - 0x14]
mov ecx, dword [edi]
mov dword [ecx], 0xf
mov dword [ecx + 4], 0
mov dword [ecx + 8], 5
mov dword [ecx + 0xc], 1
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], 0xff
add ecx, 0x34
mov dword [ecx], 0
mov eax, dword [edi]
jmp 0x43a6dc
cmp ecx, eax
jg 0x43a582
jl 0x43a565
cmp esi, edx
jae 0x43a582
lea eax, [ebp - 0xc]
mov ecx, ebx
push eax
mov eax, dword [ebx + 0x34]
push dword [ebx + 0xcc]
add eax, 0x18
push eax
call fcn.004350f0
jmp 0x43a6f3
cmp ecx, eax
jl 0x43a6f3
jg 0x43a594
cmp esi, edx
jbe 0x43a6f3
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 0xbc]
lea edi, [esi + 4]
push edi
call dword [ebp - 0x18]
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
push dword [ebp - 4]
call fcn.0042ceb0
push edi
mov esi, eax
call dword [ebp - 0x14]
test esi, esi
jne 0x43a6f3
cmp dword [ebp - 0xc0], 1
jne 0x43a6f3
test byte [ebp - 0x9c], 0x80
je 0x43a6f3
mov eax, dword [ebp - 0x90]
mov edx, 0xff
mov ecx, dword [ebx + 0xcc]
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 0xa0]
add edi, 0xc
test ecx, ecx
je 0x43a658
mov eax, dword [ebx + 0x34]
dec ecx
add eax, 0x20
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
cmp esi, ecx
jne 0x43a62e
mov eax, dword [ebx + 0xc8]
imul eax, ecx
mov ecx, dword [ebx + 0xc0]
sub ecx, eax
mov eax, dword [ebp - 4]
jmp 0x43a634
mov ecx, dword [ebx + 0xc8]
cmp dword [edi], ecx
je 0x43a643
mov eax, dword [eax]
and eax, 7
btr edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc esi
add eax, 0x20
add edi, 4
mov dword [ebp - 4], eax
cmp esi, dword [ebx + 0xcc]
jb 0x43a614
mov esi, dword [ebp - 0x1c]
and edx, esi
cmp edx, esi
jne 0x43a6f3
push dword [ebx + 0xc4]
mov eax, dword [ebx + 0x10]
push dword [ebx + 0xc0]
push esi
mov ecx, dword [eax + 0xbc]
lea eax, [ebx + 0x7c]
push eax
call fcn.0042caa0
test eax, eax
je 0x43a69c
mov ecx, dword [ebx + 0x10]
lea eax, [ebx + 0x7c]
push 0
push eax
mov ecx, dword [ecx + 0xbc]
call fcn.0042ab40
mov ecx, dword [ebx + 0x20]
mov dword [ecx], 0xf
mov dword [ecx + 4], 0
mov dword [ecx + 8], 5
mov dword [ecx + 0xc], 1
movups xmm0, xmmword [ebx + 0x7c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], esi
add ecx, 0x34
mov dword [ecx], 0
mov eax, dword [ebx + 0x20]
push ecx
push 0x7d0
sub ecx, eax
push 6
add ecx, 4
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
mov dword [ebx + 0x48], 2
mov dword [ebx + 0x144], 1
jmp 0x43a8a4
cmp eax, 0x64
jne 0x43a94c
cmp dword [ebx + 0xdc], 2
jne 0x43a889
cmp dword [ebx + 0xe0], 0x400000
jbe 0x43a735
mov dword [ebx + 0xe0], 0x400000
mov ecx, dword [ebx + 0xc]
lea esi, [ebx + 0x7c]
mov eax, dword [ecx + 0x94]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push dword [ecx + 0xa0]
lea eax, [ecx + 0x30]
mov ecx, dword [ebx + 8]
push eax
push esi
call fcn.004a73f0
test eax, eax
jne 0x43a7f4
mov eax, dword [ebx + 0xcc]
lea eax, [eax*4 + 0xc]
cmp dword [ebp - 0xc], eax
jne 0x43a7f4
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0xec]
mov eax, dword [eax + 0xa0]
mov eax, dword [eax + ecx*4 + 0xc]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebx + 0xe0]
jne 0x43a7a3
mov dword [ebx + 0x48], 0x2a
jmp 0x43a8a4
mov ecx, dword [ebx + 8]
lea eax, [ebp - 4]
push eax
push dword [ebx + 0xd8]
lea eax, [ebx + 0x9c]
mov dword [ebp - 4], 0x400000
push eax
push esi
call fcn.004a73f0
test eax, eax
jne 0x43a7f4
mov eax, dword [ebp - 4]
mov ecx, dword [ebx + 0xe0]
mov dword [ebp - 4], eax
cmp ecx, eax
jb 0x43a7f4
jne 0x43a7fb
push ecx
push dword [ebx + 0xec]
mov ecx, ebx
call fcn.00434fe0
mov dword [ebx + 0x48], 0x2a
jmp 0x43a8a4
mov dword [ebp - 4], 0
mov ecx, dword [ebx + 0xe0]
mov dword [ebp - 0xc], 0
mov dword [ebx + 0xf8], 0
test ecx, ecx
je 0x43a889
xor edx, edx
xor esi, esi
mov dword [ebp - 0xc], edx
xor edi, edi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], edx
mov eax, dword [ebx + 0x3c]
sub ecx, edx
mov dword [ebp - 0x10], ecx
mov edx, ecx
cmp ecx, eax
jbe 0x43a840
mov edi, dword [ebp - 8]
mov ecx, eax
mov dword [ebp - 0x10], eax
mov edx, eax
mov dword [ebp - 0xc], esi
mov eax, dword [ebx + 0xf0]
add edx, edi
mov esi, dword [ebp - 0x1c]
mov edi, edx
lea esi, [eax + esi*4]
mov eax, dword [ebp - 0xc]
add eax, ecx
cmp dword [ebp - 4], eax
jb 0x43a861
mov eax, 1
jmp 0x43a863
xor eax, eax
mov dword [esi], eax
mov esi, edx
inc dword [ebx + 0xf8]
mov ecx, dword [ebx + 0xe0]
mov eax, dword [ebx + 0xf8]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edi
cmp edx, ecx
jb 0x43a825
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 0
mov dword [ebx + 0x48], 0x66
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x43aa5d
mov edx, dword [ebp - 0x18]
jmp 0x4395eb
mov eax, dword [ebx + 0x14]
add eax, 0x4c
push eax
call fcn.004ae930
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0x6c]
call fcn.0046afd0
mov ecx, dword [ebx + 0x10]
lea eax, [ebx + 0x7c]
push eax
mov ecx, dword [ecx + 0xbc]
call fcn.0042aec0
mov ecx, dword [ebx + 0x20]
mov dword [ebx + 0x48], 0xffffffff
mov dword [ebx + 0x40], 0xffffffff
mov dword [ecx + 8], 1
mov dword [ecx], 9
mov dword [ecx + 4], 0
add ecx, 8
mov eax, dword [ebx + 0x20]
push ecx
push 0x7d0
sub ecx, eax
push 2
add ecx, 4
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x4c], 0x16
xor eax, eax
mov dword [ebx + 0x48], 0x15
mov dword [ebx + 0x144], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x66
jne 0x43a9eb
mov eax, dword [ebx + 0xdc]
test eax, eax
jne 0x43a987
push eax
mov ecx, ebx
call fcn.004384c0
test eax, eax
jne 0x43aa79
mov dword [ebx + 0x48], 0x67
mov dword [ebx + 0x144], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x43a9eb
mov eax, dword [ebx + 0xf8]
lea edi, [eax - 1]
test eax, eax
je 0x43a9da
xor esi, esi
xor ecx, ecx
nop dword [eax]
mov eax, dword [ebx + 0xf0]
cmp dword [eax + edi*4], 0
jne 0x43a9ca
mov eax, dword [ebx + 0x3c]
mov ecx, ebx
imul eax, edi
push eax
call fcn.004384c0
inc dword [ebx + 0xd0]
test eax, eax
jne 0x43aa79
mov ecx, esi
lea esi, [ecx + 1]
dec edi
cmp esi, dword [ebx + 0xf8]
jae 0x43a9da
mov ecx, esi
jmp 0x43a9a0
mov dword [ebx + 0x48], 0x67
mov dword [ebx + 0x144], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x20]
mov dword [ebx + 0x78], 0
mov dword [ecx], 4
mov dword [ecx + 4], 0
add ecx, 8
movups xmm0, xmmword [ebx + 0x7c]
push ecx
push 0x7d0
movups xmmword [ecx], xmm0
push 2
movups xmm0, xmmword [ebx + 0x8c]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [ebx + 0x20]
sub ecx, eax
add ecx, 0x20
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.004684f0
test eax, eax
jne 0x43aa79
mov dword [ebx + 0x4c], 0x2a
mov dword [ebx + 0x48], 0x29
mov dword [ebx + 0x144], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.00438530
test eax, eax
jne 0x43aa79
mov dword [ebx + 0x48], 1
mov dword [ebx + 0x144], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret