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

Disassembly:
mov ecx, dword [0x57adc8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 0xc]
jbe 0x42c86a
add esp, 0xffffff80
mov eax, dword [0x57adc8]
mov eax, dword fs:[eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x58]
mov dword [esp], eax
call fcn.0044d770
mov eax, dword [esp + 4]
mov dword [esp + 0x70], eax
test eax, eax
je 0x42c293
mov ecx, dword [esp + 0x88]
cmp ecx, 0x10
jae 0x42c28b
lea ecx, [eax + 0x34]
mov dword [esp + 0x74], ecx
mov dword [esp], ecx
call fcn.004310a0
movzx eax, byte [esp + 4]
test al, al
je 0x42c224
mov eax, dword [esp + 0x84]
test byte [eax], al
mov dword [esp], eax
call fcn.0040b450
mov eax, dword [esp + 0x84]
lea ecx, [eax + 8]
mov dword [esp], ecx
call fcn.00431640
lea edi, [esp + 0x58]
lea esi, [esp + 4]
call fcn.0046a28e
mov edi, dword [esp + 0x74]
lea esi, [esp + 0x58]
call fcn.0046a28e
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0040b650
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
call fcn.004310e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x42c281
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0042bf90
mov eax, dword [esp + 4]
test eax, eax
je 0x42c275
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
jmp 0x42c3b8
mov ecx, dword [esp + 0x24]
mov edx, eax
mov eax, dword [esp + 0x50]
jmp 0x42c283
xor edx, edx
mov ebx, edx
mov ebp, ecx
mov edx, eax
jmp 0x42c299
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x42c299
xor edx, edx
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x84]
test byte [eax], al
mov dword [esp], eax
call fcn.0040b450
mov eax, dword [esp + 0x50]
test eax, eax
je 0x42c2c9
xor edx, edx
mov ecx, dword [esp + 0x24]
jmp 0x42c36e
mov eax, dword [esp + 0x84]
lea ecx, [eax + 8]
mov dword [esp + 0x7c], ecx
mov dword [esp], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
call fcn.004303c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x42c2fa
xor edx, edx
jmp 0x42c36e
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
call fcn.0042cad0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 8]
test al, al
jne 0x42c33f
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0040b650
mov dword [esp + 0x90], 0
sub esp, 0xffffff80
ret
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
call fcn.004303c0
mov eax, dword [esp + 8]
test eax, eax
je 0x42c853
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x54]
test ebx, ebx
jne 0x42c395
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0042c000
mov ebx, dword [esp + 4]
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0040b650
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ecx
lea ebp, [0x57b508]
mov dword [esp], ebp
call fcn.00403390
mov eax, dword [esp + 4]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
lea edx, [0x57b040]
mov dword [esp], edx
call fcn.0041dca0
movzx eax, byte [esp + 4]
test al, al
je 0x42c403
xor eax, eax
xor ebx, ebx
jmp 0x42c449
lea eax, [0x57b638]
mov dword [esp], eax
call fcn.00403650
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
add eax, edx
adc ecx, 0
mov ebx, dword [esp + 0x3c]
cmp ebx, ecx
setb cl
sete bl
mov ebp, dword [esp + 0x38]
cmp eax, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, esi
or ebx, ecx
test bl, bl
je 0x42c447
sub eax, ebp
jmp 0x42c449
xor eax, eax
mov byte [esp + 0x1b], bl
mov dword [esp + 0x4c], eax
lea ecx, [0x57afa0]
mov dword [esp], ecx
call fcn.00403650
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
cmp eax, 0xffffffff
setne dl
cmp ecx, 0xffffffff
setne bl
or ebx, edx
test bl, bl
je 0x42c501
mov edx, dword [esp + 0x40]
test edx, edx
ja 0x42c491
mov ecx, dword [esp + 0x70]
test ecx, ecx
mov eax, dword [esp + 0x4c]
jmp 0x42c50b
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
call fcn.00425540
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x40]
add eax, edx
adc ecx, 0
mov ebx, dword [esp + 0x48]
cmp ebx, ecx
setb cl
sete bl
mov ebp, dword [esp + 0x44]
cmp eax, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, esi
or ebx, ecx
test bl, bl
je 0x42c4f5
sub eax, ebp
cmp eax, edx
jb 0x42c4d7
mov eax, edx
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jae 0x42c4e7
mov ecx, dword [esp + 0x70]
test ecx, ecx
jmp 0x42c50b
mov edx, dword [esp + 0x70]
test edx, edx
mov ecx, edx
mov eax, dword [esp + 0x4c]
jmp 0x42c50b
mov ecx, dword [esp + 0x70]
test ecx, ecx
mov eax, dword [esp + 0x4c]
jmp 0x42c50b
mov ecx, dword [esp + 0x70]
test ecx, ecx
mov eax, dword [esp + 0x4c]
je 0x42c61d
test eax, eax
ja 0x42c51e
xor eax, eax
xor edx, edx
jmp 0x42c621
mov dword [esp + 0x4c], eax
call fcn.0045b3d0
mov eax, dword [esp + 0x70]
lea ecx, [eax + 0x948]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 4]
mov ebx, dword [esp]
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 4]
mov dword [esp + 0x20], ebp
mov dword [esp], ecx
mov byte [esp + 4], 3
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
call fcn.0041e810
mov eax, dword [esp + 0x84]
test byte [eax], al
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x1a], cl
lea edx, [eax + 8]
mov dword [esp], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
lea edx, [0x4df078]
mov dword [esp + 8], edx
movzx edx, byte [esp + 0x1b]
mov byte [esp + 0xc], dl
call fcn.00426110
mov eax, dword [esp + 0x10]
lea ecx, [0x55ad3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004037d0
call fcn.0045b3d0
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x30], edx
movzx ebx, byte [esp + 0x1a]
test bl, bl
je 0x42c5f1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov byte [esp + 4], 3
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
call fcn.0041ea00
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
lea edx, [0x57afb0]
mov dword [esp], edx
mov edx, dword [esp + 0x1c]
sub ecx, edx
mov edx, dword [esp + 0x20]
sbb eax, edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call fcn.00403470
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
jmp 0x42c621
xor eax, eax
xor edx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
movzx ebx, byte [esp + 0x8c]
mov byte [esp + 8], bl
movzx ebp, byte [esp + 0x8d]
xchg ebp, eax
mov byte [esp + 9], al
xchg ebp, eax
mov ebp, dword [esp + 0x50]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x88]
mov dword [esp + 0x10], esi
call fcn.0042c880
mov eax, dword [esp + 0x88]
shl eax, 0xd
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x42c6c5
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00417160
lea eax, [0x57b618]
mov dword [esp], eax
xor eax, eax
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov edx, 0
sbb edx, 0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call fcn.004362b0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
lea ecx, [0x57b620]
mov dword [esp], ecx
sub eax, edx
xor ebx, ebx
sub ebx, eax
mov eax, 0
sbb eax, 0
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
call fcn.004362b0
movzx eax, byte [esp + 0x8c]
test al, al
jne 0x42c713
lea eax, [0x57b610]
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.004362b0
lea eax, [0x57e6a0]
mov dword [esp], eax
call fcn.004363d0
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], eax
test byte [eax], al
mov dword [esp], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
call fcn.00403a70
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 8]
mov dword [esp], ecx
xor ecx, ecx
mov edx, dword [esp + 0x24]
sub ecx, edx
mov edx, 0
sbb edx, 0
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call fcn.00403a70
movzx eax, byte [esp + 0x8c]
cmp al, 1
ja 0x42c7bd
test al, al
jne 0x42c79c
mov eax, dword [esp + 0x6c]
add eax, 0x10
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00403a70
jmp 0x42c807
mov eax, dword [esp + 0x6c]
add eax, 0x18
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00403a70
jmp 0x42c807
cmp al, 2
je 0x42c7e8
cmp al, 3
jne 0x42c807
mov eax, dword [esp + 0x6c]
add eax, 0x20
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00403a70
jmp 0x42c807
mov eax, dword [esp + 0x6c]
add eax, 0x28
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00403a70
lea eax, [0x57e6a0]
mov dword [esp], eax
call fcn.004364c0
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
call fcn.0043a770
mov eax, dword [esp + 0x54]
mov dword [esp + 0x90], eax
sub esp, 0xffffff80
ret
lea eax, [0x4dd2d4]
mov dword [esp], eax
mov dword [esp + 4], 0x2b
call fcn.0043c250
nop
call fcn.00467510
jmp fcn.0042c170