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

Disassembly:
mov ecx, dword [0x4e99a4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x421dfd
sub esp, 0x68
mov ebx, dword [esp + 0x6c]
test byte [ebx], al
mov ebp, dword [0x4e9908]
mov esi, dword [0x4c1114]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea ebp, [0x421e10]
mov dword [esp + 0x60], ebp
lea ebp, [esp + 0x54]
mov dword [esp + 0x64], ebp
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x4219d0
mov ebp, dword [esp + 0x20]
inc ebp
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
mov ebx, esi
mov eax, ebp
mov edx, dword [esp + 0x44]
cmp eax, 4
jge 0x421a9c
mov dword [esp + 0x1c], edx
lea ebp, [0x4c1200]
mov esi, dword [ebp + eax*4]
mov edi, ecx
mov ecx, esi
mov ebp, 1
shl ebp, cl
shl edi, cl
mov dword [esp + 0x50], edi
lea edx, [eax + eax*2]
mov edi, dword [ebx + edx*4 + 8]
mov dword [esp + 0x4c], edi
lea edi, [0x4c1220]
mov edi, dword [edi + eax*4]
mov edx, dword [ebx + edx*4]
cmp ecx, 0x20
sbb esi, esi
and ebp, esi
mov dword [esp + 0x30], ebp
mov ecx, edi
mov edi, dword [esp + 0x50]
and edi, esi
lea esi, [edi + ebp]
mov ebp, dword [esp + 0x4c]
cmp ebp, esi
jb 0x421df3
cmp edi, esi
ja 0x421dea
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], edi
sub ebp, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
shl edi, 3
sar ebp, 0x1f
and ebp, edi
mov edi, dword [ebx + 0x34]
mov ebx, dword [esp + 0x30]
neg ebx
lea esi, [0x4c1210]
mov eax, dword [esi + eax*4]
mov ecx, eax
shr edi, cl
add ebp, edx
cmp eax, 0x20
sbb eax, eax
and edi, eax
and ebx, edi
mov esi, dword [esp + 0x2c]
cmp ebx, esi
jne 0x421a89
mov ecx, dword [esp + 0x30]
lea ebx, [ecx - 1]
and ebx, edi
jmp 0x421a8f
mov ecx, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp + 0x5c], ebp
xor eax, eax
xor edx, edx
jmp 0x421b7f
mov edx, dword [ebx + 0x30]
test byte [edx], al
cmp ecx, 0x400
jae 0x421b72
mov dword [esp + 0x2c], ecx
shl ecx, 7
add ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
call fcn.004242b0
mov eax, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x421b31
mov ecx, dword [esp + 0x10]
shl eax, 0xd
shl ecx, 0xd
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x2c]
lea esi, [ebp + 1]
shl ebp, 0x16
add eax, ebp
mov dword [esp + 0x3c], eax
add ecx, ebp
shl esi, 0x16
sub esi, ecx
mov dword [esp], ecx
mov dword [esp + 4], esi
lea edx, [esp + 0x60]
call ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004218d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jae 0x421b6d
mov ecx, dword [edx + 0x24]
lea eax, [ecx + eax*8]
mov eax, dword [eax + 4]
nop
test eax, 0x80000000
je 0x421b51
nop
je 0x421b54
nop
je 0x421b57
lea eax, [0x46a892]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.0042c470
call fcn.0044d140
mov eax, ecx
mov ecx, 0x400
call fcn.0044d150
inc ebx
cmp ebx, ecx
jge 0x421d1f
jae 0x421de3
mov dword [esp + 0x14], eax
lea edi, [ebp + ebx*8]
mov eax, dword [edi + 4]
mov dword [esp + 0x44], eax
mov edi, dword [edi]
mov dword [esp + 0x18], edi
test eax, eax
sete al
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and eax, edi
test al, al
je 0x421bba
xor eax, eax
jmp 0x421b7e
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x60]
lea ebp, [ebx + esi]
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x48]
mov edi, 1
shl edi, cl
mov esi, dword [esp + 0x20]
lea ebx, [0x4c1210]
mov edx, dword [ebx + esi*4]
mov ecx, edx
shl ebp, cl
mov ebx, dword [esp + 0x48]
cmp ebx, 0x20
sbb esi, esi
and esi, edi
shl esi, 0xd
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
mov dword [esp], edi
mov dword [esp + 4], esi
lea edx, [esp + 0x60]
call eax
mov eax, dword [esp + 0x44]
test eax, 0x80000000
je 0x421c21
mov ebp, dword [esp + 0x18]
mov ebx, 0x40000
jmp 0x421c2d
mov ebx, dword [esp + 0x18]
mov ebp, ebx
and ebx, 0x3ffff
mov esi, dword [esp + 0x14]
lea edi, [esi + ebx]
mov ecx, ebx
mov ebx, dword [esp + 0x70]
cmp ebx, edi
jbe 0x421cf6
test eax, 0x80000000
je 0x421c50
mov edx, 0x40000
jmp 0x421c63
mov edi, eax
shl eax, 0xe
shr ebp, 0x12
or eax, ebp
and eax, 0x3ffff
mov edx, eax
mov eax, edi
cmp ebx, edx
jbe 0x4219bb
test esi, esi
jne 0x421c76
test eax, 0x80000000
jmp 0x421c99
mov ebp, dword [esp + 0x48]
cmp ebp, 0x20
sbb edi, edi
mov edx, ecx
mov ecx, ebp
mov ebx, 1
shl ebx, cl
and ebx, edi
cmp edx, ebx
jae 0x421cda
test eax, 0x80000000
mov ebx, dword [esp + 0x70]
je 0x421ca9
mov ecx, dword [esp + 0x48]
cmp ecx, 0x20
mov eax, 0x40000
jmp 0x421cb8
shr eax, 4
and eax, 0x3ffff
mov ecx, dword [esp + 0x48]
cmp ecx, 0x20
sbb edx, edx
mov ebp, dword [esp + 0x24]
lea esi, [ebp + 1]
shl esi, cl
and edx, esi
sub edx, eax
mov ecx, dword [esp + 0x30]
mov ebx, ebp
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
jmp 0x421b7e
lea eax, [esi + ebx]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
jmp 0x421b7e
test esi, esi
jne 0x421d0d
mov ecx, dword [esp + 0x48]
cmp ecx, 0x20
sbb edx, edx
mov eax, dword [esp + 0x24]
shl eax, cl
and edx, eax
jmp 0x421d11
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov eax, edi
mov ebx, dword [esp + 0x70]
cmp ebx, eax
jbe 0x421d58
mov eax, dword [esp + 0x20]
test eax, eax
je 0x421d42
mov eax, dword [esp + 0x1c]
test eax, 0x80000000
je 0x421d3a
je 0x421d3c
je 0x421d3e
xor eax, eax
jmp 0x421db1
mov eax, dword [0x4c1114]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], eax
add esp, 0x68
ret
shl edx, 0xd
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
lea ebp, [0x4c1210]
mov ecx, dword [ebp + ebx*4]
mov dword [esp + 0x48], ecx
shl esi, cl
mov dword [esp + 0x40], esi
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004218d0
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x48]
cmp edx, 0x20
sbb edx, edx
mov ebx, dword [esp + 0x40]
and ebx, edx
mov edx, dword [esp + 0x34]
add edx, ebx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
inc eax
cmp eax, ecx
jge 0x421dcd
lea edx, [ebp + eax*8]
mov edx, dword [edx + 4]
nop
test edx, 0x80000000
je 0x421dc5
nop
je 0x421dc8
nop
jne 0x421db0
jmp 0x421db0
lea eax, [0x46a892]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.0042c470
mov eax, ebx
call fcn.0044d140
mov eax, edi
mov ecx, esi
call fcn.0044d1a0
mov ecx, esi
mov edx, ebp
call fcn.0044d180
nop
call fcn.0044bcf0
jmp fcn.00421960