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

Disassembly:
sub esp, 0x23c
mov eax, dword [0x4fe040]
xor eax, esp
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x244]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x24c]
mov dword [esp + 0x70], eax
push edi
mov dword [esp + 0x1c], esi
mov ebp, dword [esi]
lea ebx, [esi + 0x2678]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], ebp
mov eax, dword [ebp + 0xc]
lea edi, [eax*8 + 0x4de208]
mov eax, 0x24924925
mul ecx
mov eax, dword [edi]
sub ecx, edx
mov dword [esp + 0x14], edi
shr ecx, 1
add ecx, edx
shr ecx, 3
mov dword [esp + 0x80], ecx
cmp eax, 0x159b
je 0x42c79b
lea ecx, [eax + 0x4dcc68]
xor edx, edx
xor eax, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], eax
xor ebp, ebp
mov dword [esp + 0x50], eax
mov al, byte [ecx]
mov dword [esp + 0x24], ebp
test al, al
je 0x42c777
nop dword [eax]
mov byte [esp + 0x13], 0
cmp al, 0x20
jne 0x42bfa6
nop dword [eax]
inc ecx
cmp byte [ecx], 0x20
je 0x42bfa0
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x74]
push eax
push esi
push ecx
call fcn.00401fd2
mov edx, dword [esp + 0x74]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x5c], ecx
test edx, edx
je 0x42c655
test byte [edi + 4], 1
mov ebx, 0
setne bl
xor eax, eax
add ebx, 0x7fffffff
mov dword [esp + 0x6c], eax
test edx, edx
je 0x42c376
mov dword [esp + 0x4c], ebx
lea ecx, [esp + 0x58]
mov byte [esp + 0x12], 0
push ecx
push 0
push eax
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.00402306
add esp, 0x14
test eax, eax
je 0x42c35b
mov edi, dword [esp + 0x74]
push 1
push eax
push edi
call fcn.0040101e
mov ecx, dword [edi + 0x54]
add esp, 0xc
movups xmm0, xmmword [ecx + 0x6c]
mov ecx, dword [ecx + 0x7c]
mov dword [esp + 0x98], ecx
movups xmmword [esp + 0x88], xmm0
test eax, eax
jne 0x42c35b
mov ecx, dword [esp + 0x88]
mov eax, ecx
shr eax, 0x10
cmp ax, 2
jle 0x42c35b
or ebx, 0xffffffff
movsx eax, cx
xor ecx, ecx
mov dword [esp + 0x38], ebx
xor edi, edi
mov dword [esp + 0x20], ebx
or esi, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ecx
test eax, eax
jle 0x42c5f7
mov edx, dword [esp + 0x94]
lea eax, [esi + 1]
movsx esi, word [edx + ecx*2]
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], esi
cmp esi, eax
jle 0x42c156
mov ecx, dword [esp + 0x14]
mov edx, eax
test byte [ecx + 4], 3
mov ecx, dword [esp + 0x8c]
lea ecx, [ecx + eax*8]
jne 0x42c0fa
add ecx, 4
test ebx, ebx
js 0x42c0cf
mov eax, dword [ecx]
cmp eax, edi
jl 0x42c0cf
add eax, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
cmp ebp, eax
jg 0x42c0f0
mov ebp, eax
jmp 0x42c0f0
mov eax, dword [esp + 0x58]
mov ebx, edx
mov esi, dword [esp + 0x50]
mov edi, dword [ecx]
add eax, edi
cmp esi, eax
cmovge esi, eax
mov eax, esi
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x50], eax
inc edx
add ecx, 8
cmp edx, esi
jle 0x42c0b5
jmp 0x42c135
add ecx, 4
nop dword [eax]
test ebx, ebx
js 0x42c11e
mov eax, dword [ecx]
cmp eax, edi
jg 0x42c11e
add eax, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x50], eax
jl 0x42c12d
mov dword [esp + 0x50], eax
jmp 0x42c12d
mov eax, dword [esp + 0x58]
mov ebx, edx
mov edi, dword [ecx]
add eax, edi
cmp ebp, eax
cmovle ebp, eax
inc edx
add ecx, 8
cmp edx, esi
jle 0x42c100
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], ebp
cmp ebx, dword [esp + 0x20]
jle 0x42c156
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], esi
inc ecx
mov dword [esp + 0x34], ecx
cmp ecx, dword [esp + 0x2c]
jl 0x42c085
test ebx, ebx
js 0x42c5f7
mov eax, dword [esp + 0x8c]
or edx, 0xffffffff
mov ebp, dword [esp + 0x90]
mov ecx, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ebx
mov eax, dword [eax + ebx*8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x40], ebx
mov al, byte [eax + ebx]
and al, 3
cmp al, 1
cmove edx, ebx
mov esi, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], esi
nop
cmp ecx, dword [esp + 0x38]
jle 0x42c1b9
dec ecx
jmp 0x42c1bd
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x8c]
mov edx, dword [eax + ecx*8 + 4]
mov eax, edx
sub eax, edi
jns 0x42c1d2
mov eax, edi
sub eax, edx
cmp eax, 5
jle 0x42c211
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x8c]
mov esi, dword [edx + ecx*8]
mov edx, esi
sub edx, dword [ebp + ebx*8]
mov ebp, dword [esp + 0x90]
jns 0x42c203
mov edx, dword [esp + 0x8c]
mov edx, dword [edx + ebx*8]
sub edx, esi
lea eax, [eax + eax*4]
shl eax, 2
cmp edx, eax
jle 0x42c22f
mov esi, dword [esp + 0x2c]
mov al, byte [ecx + ebp]
and al, 3
mov dword [esp + 0x3c], ecx
cmp al, 1
jne 0x42c22b
test esi, esi
mov dword [esp + 0x48], ecx
cmovs esi, ecx
mov dword [esp + 0x2c], esi
cmp ecx, ebx
jne 0x42c1b0
mov ebp, dword [esp + 0x40]
cmp ebp, dword [esp + 0x20]
jge 0x42c23c
inc ebp
jmp 0x42c240
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx + ebp*8 + 4]
mov eax, ecx
sub eax, edi
jns 0x42c255
mov eax, edi
sub eax, ecx
cmp eax, 5
jle 0x42c275
mov edx, dword [edx + ebp*8]
mov ecx, edx
mov esi, dword [esp + 0x18]
sub ecx, esi
jns 0x42c26b
mov ecx, esi
sub ecx, edx
lea eax, [eax + eax*4]
shl eax, 2
cmp ecx, eax
jle 0x42c2a2
mov eax, dword [esp + 0x90]
mov ecx, ebp
mov dword [esp + 0x30], ecx
mov al, byte [eax + ebp]
and al, 3
cmp al, 1
jne 0x42c29c
mov esi, dword [esp + 0x48]
test esi, esi
mov dword [esp + 0x2c], ebp
cmovs esi, ebp
mov dword [esp + 0x48], esi
cmp ebp, ebx
jne 0x42c233
jmp 0x42c2a6
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ebp
test byte [eax + 4], 0x10
je 0x42c585
mov edx, dword [esp + 0x1c]
mov eax, 0x51eb851f
mov esi, dword [esp + 0x3c]
mov ebp, dword [edx + 0x28]
mul ebp
mov eax, dword [esp + 0x8c]
shr edx, 3
mov dword [esp + 0x60], edx
mov eax, dword [eax + ecx*8]
mov ecx, dword [esp + 0x8c]
mov esi, dword [ecx + esi*8]
mov ecx, eax
sub ecx, esi
sub esi, eax
test ecx, ecx
cmovns esi, ecx
cmp esi, edx
mov esi, dword [esp + 0x30]
jge 0x42c589
mov eax, dword [esp + 0x20]
mov ecx, esi
sub ecx, dword [esp + 0x3c]
sub eax, dword [esp + 0x38]
add ecx, 2
cmp ecx, eax
jg 0x42c589
mov edx, dword [esp + 0x18]
mov eax, ebx
shr ebp, 2
mov dword [esp + 0x78], ebp
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0x34], ecx
nop word [eax + eax]
cmp eax, dword [esp + 0x38]
jle 0x42c339
dec eax
jmp 0x42c33d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + eax*8]
cmp ecx, edx
jne 0x42c3ae
cmp eax, ebx
jne 0x42c330
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x64]
jb 0x42bff0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
cmp ebx, 0x80000000
je 0x42c659
cmp ebx, 0x7fffffff
je 0x42c659
cmp byte [esp + 0x13], 0
je 0x42c643
mov dword [esp + edx*4 + 0xb0], ebx
inc edx
mov dword [esp + 0x28], edx
jmp 0x42c659
cmp eax, ebx
je 0x42c34f
mov eax, dword [esp + 0x30]
cmp ecx, edx
mov dword [esp + 0x18], esi
setl byte [esp + 0x47]
xor cl, cl
mov byte [esp + 0x12], cl
test cl, cl
jne 0x42c3f0
mov ecx, dword [esp + 0x90]
or ebp, 0xffffffff
mov esi, eax
mov byte [esp + 0x12], 1
mov dword [esp + 0x18], esi
mov cl, byte [eax + ecx]
and cl, 3
cmp cl, 1
cmove ebp, eax
mov dword [esp + 0x34], ebp
cmp eax, dword [esp + 0x20]
jge 0x42c3f9
inc eax
jmp 0x42c3fd
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x8c]
mov ecx, edi
mov ebx, dword [edx + esi*8 + 4]
sub ecx, ebx
jns 0x42c412
mov ecx, ebx
sub ecx, edi
cmp ecx, dword [esp + 0x78]
jle 0x42c423
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x42c4b5
mov ecx, dword [edx + eax*8 + 4]
mov edx, ecx
sub edx, ebx
sub ebx, ecx
test edx, edx
cmovns ebx, edx
mov dword [esp + 0x7c], ebx
cmp ebx, 5
jle 0x42c469
mov edx, dword [esp + 0x8c]
mov esi, dword [edx + esi*8]
mov ecx, dword [edx + eax*8]
mov edx, ecx
sub edx, esi
sub esi, ecx
test edx, edx
lea ecx, [ebx + ebx*4]
cmovns esi, edx
shl ecx, 2
cmp esi, ecx
mov esi, dword [esp + 0x18]
jg 0x42c469
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x42c4b5
mov ecx, dword [esp + 0x90]
mov cl, byte [eax + ecx]
and cl, 3
cmp cl, 1
jne 0x42c484
test ebp, ebp
mov dword [esp + 0x34], eax
cmovs ebp, eax
mov ecx, dword [esp + 0x8c]
mov esi, dword [ecx + esi*8]
mov edx, dword [ecx + eax*8]
cmp esi, edx
mov ecx, edx
setl bl
sub ecx, esi
sub esi, edx
test ecx, ecx
cmovns esi, ecx
cmp bl, byte [esp + 0x47]
jne 0x42c4ad
cmp esi, dword [esp + 0x60]
jge 0x42c4ca
mov esi, dword [esp + 0x18]
mov cl, byte [esp + 0x12]
mov ebx, dword [esp + 0x3c]
cmp eax, ebx
jne 0x42c3c7
mov esi, dword [esp + 0x30]
jmp 0x42c58d
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x7c]
lea ecx, [edx + ecx*8]
mov ebx, dword [edx + esi*8 + 4]
mov dword [esp + 0x60], ecx
cmp eax, dword [esp + 0x20]
jge 0x42c4f1
inc eax
jmp 0x42c4f5
mov eax, dword [esp + 0x38]
mov edx, dword [edx + eax*8 + 4]
mov ecx, edx
sub ecx, ebx
jns 0x42c503
mov ecx, ebx
sub ecx, edx
cmp ecx, 5
jle 0x42c52f
mov ecx, dword [esp + 0x8c]
mov esi, dword [ecx + esi*8]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx]
sub edx, esi
sub esi, dword [ecx]
test edx, edx
lea ecx, [edi + edi*4]
cmovns esi, edx
shl ecx, 2
cmp esi, ecx
jle 0x42c55d
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x34], eax
mov cl, byte [eax + ecx]
and cl, 3
cmp cl, 1
jne 0x42c54e
test ebp, ebp
mov dword [esp + 0x34], eax
cmovs ebp, eax
cmp eax, dword [esp + 0x3c]
je 0x42c56a
mov edx, dword [esp + 0x8c]
jmp 0x42c4e8
cmp eax, dword [esp + 0x38]
jle 0x42c566
dec eax
jmp 0x42c56a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov esi, eax
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov edi, dword [edx + ecx*8 + 4]
mov edx, ebp
mov ecx, dword [esp + 0x34]
jmp 0x42c595
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
add edi, dword [esp + 0x58]
test edx, edx
js 0x42c5c4
test ecx, ecx
js 0x42c5c4
mov ebp, dword [esp + 0x8c]
mov eax, dword [ebp + ecx*8]
mov ecx, eax
mov edx, dword [ebp + edx*8]
sub ecx, edx
sub edx, eax
test ecx, ecx
cmovns edx, ecx
cmp edx, dword [esp + 0x80]
jg 0x42c5f2
mov ecx, dword [esp + 0x90]
mov al, byte [ecx + ebx]
and al, 3
cmp al, 1
jne 0x42c5dd
mov al, byte [ecx + esi]
and al, 3
cmp al, 1
je 0x42c5f2
mov eax, dword [esp + 0x14]
mov byte [esp + 0x12], 1
test byte [eax + 4], 4
jne 0x42c34f
jmp 0x42c5fb
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
test byte [eax + 4], 1
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
je 0x42c628
cmp edi, ebx
jle 0x42c35b
mov cl, byte [esp + 0x12]
mov ebx, edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x13], cl
jmp 0x42c35b
cmp edi, ebx
jge 0x42c35b
mov al, byte [esp + 0x12]
mov ebx, edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x13], al
jmp 0x42c35b
mov eax, dword [esp + 0x54]
mov dword [esp + eax*4 + 0x17c], ebx
inc eax
mov dword [esp + 0x54], eax
jmp 0x42c659
mov edx, dword [esp + 0x28]
mov al, byte [ecx]
test al, al
jne 0x42bf90
mov esi, dword [esp + 0x54]
mov eax, edx
mov ebx, dword [esp + 0x50]
test esi, esi
jne 0x42c681
mov dword [esp + 0x54], esi
mov dword [esp + 0x28], edx
test eax, eax
je 0x42c777
lea eax, [esp + 0xb0]
push eax
push edx
call fcn.0042e8d0
lea eax, [esp + 0x184]
push eax
push esi
call fcn.0042e8d0
mov edx, dword [esp + 0x78]
add esp, 0x10
mov ecx, dword [edx + 0xd8]
lea eax, [ecx*8 + 0x37]
add eax, ecx
lea esi, [edx + eax*4]
lea eax, [ecx + 1]
mov dword [edx + 0xd8], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x28]
test eax, eax
jne 0x42c6db
shr edx, 1
mov eax, dword [esp + edx*4 + 0xb0]
mov dword [esi + 0xc], eax
mov dword [esi], eax
jmp 0x42c6fd
shr eax, 1
mov eax, dword [esp + eax*4 + 0x17c]
test edx, edx
jne 0x42c6ef
mov dword [esi + 0xc], eax
mov dword [esi], eax
jmp 0x42c6fd
shr edx, 1
mov dword [esi], eax
mov eax, dword [esp + edx*4 + 0xb0]
mov dword [esi + 0xc], eax
mov edi, dword [esi + 0xc]
mov edx, dword [esi]
cmp edi, edx
je 0x42c72e
mov eax, dword [esp + 0x14]
mov ecx, 0
test byte [eax + 4], 3
setne cl
xor eax, eax
cmp edi, edx
setg al
cmp eax, ecx
je 0x42c72e
lea eax, [edi + edx]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0xc], eax
mov dword [esi], eax
mov edi, dword [esp + 0x14]
xor eax, eax
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], 0
test byte [edi + 4], 1
je 0x42c753
mov dword [esi + 0x20], 2
mov eax, 2
test byte [edi + 4], 2
je 0x42c75f
or eax, 4
mov dword [esi + 0x20], eax
test byte [edi + 4], 4
je 0x42c76b
or eax, 8
mov dword [esi + 0x20], eax
test byte [edi + 4], 8
je 0x42c777
or eax, 0x10
mov dword [esi + 0x20], eax
mov eax, dword [edi + 8]
add edi, 8
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
cmp eax, 0x159b
jne 0x42bf66
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x84]
mov esi, dword [ebx + 0xd8]
test esi, esi
je 0x42c818
xor eax, eax
test esi, esi
je 0x42c7c4
lea ecx, [ebx + 0xdc]
mov dword [esp + eax*4 + 0x88], ecx
inc eax
add ecx, 0x24
cmp eax, esi
jb 0x42c7b5
lea eax, [esp + 0x88]
push eax
push esi
call fcn.0042d470
lea eax, [esi - 1]
add esp, 8
xor edx, edx
test eax, eax
je 0x42c814
nop
mov eax, dword [esp + edx*4 + 0x88]
test byte [eax + 0x20], 6
je 0x42c7f0
add eax, 0xc
mov ecx, dword [esp + edx*4 + 0x8c]
test byte [ecx + 0x20], 6
je 0x42c800
add ecx, 0xc
mov ecx, dword [ecx]
cmp dword [eax], ecx
jle 0x42c808
mov dword [eax], ecx
mov eax, dword [ebx + 0xd8]
inc edx
dec eax
cmp edx, eax
jb 0x42c7e0
xor eax, eax
jmp 0x42c84d
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [edx + 0x24]
mov esi, dword [edx + 8]
cmp dword [edx + 4], ecx
jbe 0x42c848
lea edi, [ecx + 0x42]
nop dword [eax]
movzx eax, word [esi + ecx*2]
and eax, 0x3fff
cmp eax, dword [ebp]
jne 0x42c842
mov word [esi + ecx*2], di
inc ecx
cmp ecx, dword [edx + 4]
jb 0x42c830
mov eax, 1
mov ecx, dword [esp + 0x248]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004018ca
add esp, 0x23c
ret