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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x46ff93
sub esp, 0xd8
mov edx, dword [esp + 0xdc]
mov ebx, dword [edx]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov edi, dword [edx + 4]
test edi, edi
mov eax, edx
sete dl
and edx, ebp
test dl, dl
jne 0x46fedd
mov edx, dword [esp + 0xe4]
test edx, edx
je 0x46ff7a
cmp edi, 1
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov ecx, edx
seta dl
nop
nop
and ebp, 1
or edx, ebp
test dl, dl
je 0x46fed0
mov edx, edi
xor ebp, ebp
mov esi, 0x20
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], edx
mov dword [esp + 0x2c], ebp
test ebp, ebp
seta dl
cmp edi, 0x10000
setae bl
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebx, ebp
or ebx, edx
test bl, bl
je 0x46fec7
shr edi, 0x10
mov ebp, dword [esp + 0x2c]
mov edx, ebp
shl ebp, 0x10
or edi, ebp
shr edx, 0x10
add esi, 0x10
mov dword [esp + 0x2c], edx
cmp edi, 0x100
setae bl
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
seta dl
and ebx, ebp
or ebx, edx
test bl, bl
je 0x46febe
shr edi, 8
mov edx, dword [esp + 0x2c]
mov ebx, edx
shl edx, 0x18
or edi, edx
shr ebx, 8
add esi, 8
test ebx, ebx
jne 0x46ff6c
cmp edi, 0x100
jae 0x46ff60
mov dword [esp + 0x50], esi
lea edx, [0x7257e0]
movzx edx, byte [edx + edi]
mov dword [esp + 0x90], edx
lea ecx, [edx + esi - 0x40]
neg ecx
mov dword [esp + 0x30], ecx
cmp ecx, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x98]
mov edi, ebp
shl ebp, cl
and ebp, ebx
mov dword [eax], ebp
lea ebp, [ecx - 0x20]
mov dword [esp + 0x98], ebp
cmp ebp, 0x20
sbb edx, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb esi, esi
mov ecx, ebp
mov ebp, edi
shr edi, cl
mov ecx, dword [esp + 0x98]
shl ebp, cl
and ebp, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x94]
shl edx, cl
and edi, esi
and edx, ebx
or edx, edi
or edx, ebp
mov dword [eax + 4], edx
mov edx, dword [eax + 8]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x90]
add ebx, ebp
lea edx, [edx + ebx - 0x40]
mov dword [eax + 8], edx
mov dword [esp], eax
call fcn.0046f570
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 8]
neg ecx
mov dword [esp + 0x90], ecx
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0x98], edx
lea ebx, [ecx - 0x20]
mov dword [esp + 0x94], ebx
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0x8c], ebp
mov esi, ebx
neg ebx
cmp ebx, 0x20
sbb edi, edi
mov dword [esp + 0x88], edi
mov ebp, dword [eax + 4]
mov dword [esp + 0x84], ebp
mov eax, dword [eax]
mov dword [esp + 0x80], eax
shr eax, cl
and eax, edx
mov ecx, ebx
shl ebp, cl
and ebp, edi
or eax, ebp
mov ecx, esi
mov ebp, dword [esp + 0x84]
shr ebp, cl
mov edi, dword [esp + 0x8c]
and ebp, edi
or eax, ebp
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x90]
mov ebp, eax
shl eax, cl
and eax, edx
mov edx, dword [esp + 0x80]
sub edx, eax
mov dword [esp + 0x58], edx
mov ecx, esi
shl ebp, cl
and ebp, edi
mov ecx, ebx
mov edi, dword [esp + 0x7c]
shr edi, cl
mov ebx, dword [esp + 0x88]
and edi, ebx
or edi, ebp
mov ebp, dword [esp + 0x80]
sub ebp, eax
mov eax, dword [esp + 0x84]
sbb eax, edi
mov ebp, dword [esp + 4]
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0x7c]
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xac]
jmp 0x46f9f9
mov edx, eax
mov eax, 0xa
mov ebx, edx
mul ebp
mov ebp, dword [esp + 0x54]
inc ebp
mov esi, dword [esp + 0x44]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov eax, ebx
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
cmp ebx, 0x14
jge 0x46feb7
mov esi, dword [esp + 0x44]
test esi, esi
sete dl
mov ebp, dword [esp + 0x40]
cmp ebp, edi
seta bl
test esi, esi
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, edx
or ebx, esi
test bl, bl
je 0x46f9bb
mov edx, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0xe4]
cmp ebx, edx
jge 0x46fea5
mov ebp, edx
sub edx, ebx
cmp edx, 0x14
jae 0x46ff54
lea esi, [0x724cc0]
lea edx, [esi + edx*8]
mov esi, dword [edx]
mov edx, dword [edx + 4]
test esi, esi
je 0x46ff4f
mov dword [esp + 0x3c], edx
mov eax, edi
xor edx, edx
div esi
mov edx, eax
imul eax, esi
sub edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x34], edi
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.0045e1f8
mov eax, 0x20
jmp 0x46faae
add edi, 0x30
xchg edi, eax
mov byte [esp + ecx + 0xb3], al
xchg edi, eax
mov ecx, esi
mov esi, eax
mov eax, ecx
test edx, edx
jbe 0x46fad6
mov ecx, eax
mov eax, 0xcccccccd
mov edi, edx
mul edx
shr edx, 3
mov eax, esi
lea esi, [edx + edx*4]
shl esi, 1
sub edi, esi
lea esi, [ecx - 1]
cmp esi, 0x20
jb 0x46fa9c
jmp 0x46ff43
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], ebp
mov edx, dword [esp + 0xe0]
mov ecx, eax
jmp 0x46fb02
xchg ebp, ecx
mov byte [ebx + eax], cl
xchg ebp, ecx
lea eax, [edi + 1]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x38]
cmp eax, 0x20
jge 0x46fb2a
mov edi, eax
sub eax, ecx
cmp edi, 0x20
jae 0x46ff37
mov esi, dword [edx + 4]
mov ebx, dword [edx]
movzx ebp, byte [esp + edi + 0xb4]
cmp eax, esi
jb 0x46fae9
jmp 0x46ff30
lea edi, [ecx - 0x20]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [edx + 0xc], edi
mov eax, edi
mov edi, dword [esp + 0x60]
add ebp, edi
mov dword [edx + 0x10], ebp
lea ebx, [ecx + ebx - 0x20]
test ebx, ebx
jle 0x46fe79
mov ebp, dword [esp + 0x34]
test ebp, ebp
jne 0x46ff18
cmp esi, 1
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, esi
mov esi, dword [esp + 0x3c]
test esi, esi
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x46ff18
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x9c], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov ecx, 1
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
jmp 0x46fc61
mov ebx, esi
shl esi, cl
and esi, edi
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
sub eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xd4]
mov byte [esi + ebp], al
mov eax, dword [esp + 0x64]
shl eax, cl
mov ecx, dword [esp + 0x84]
mov esi, ebx
shr ebx, cl
mov ecx, dword [esp + 0x94]
shl esi, cl
and eax, edi
mov edi, dword [esp + 0x88]
and ebx, edi
or eax, ebx
mov ebx, dword [esp + 0x8c]
and esi, ebx
or eax, esi
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x6c]
sub esi, edx
mov edx, dword [esp + 0x80]
sbb edx, eax
lea eax, [ebp + 1]
mov ebp, dword [esp + 0x48]
dec ebp
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x38]
mov edi, ebx
mov ebx, ebp
mov dword [esp + 0x5c], edx
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x34]
test ebx, ebx
jle 0x46fdae
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
mov eax, 0xa
mov ebp, dword [esp + 0x58]
mul ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
mov ebx, 0xa
mul ebx
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x28]
lea ebx, [ebx + ebx*4]
lea edx, [edx + ebx*2]
mov dword [esp + 0x7c], edx
shl edx, 1
shr eax, 0x1f
or eax, edx
mov ecx, dword [esp + 0x94]
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x84]
mov ebx, 1
shr ebx, cl
mov ebp, dword [esp + 0x88]
and ebx, ebp
and edx, edi
or edx, ebx
cmp edx, eax
setb dl
sete bl
mov eax, edi
mov edi, dword [esp + 0x24]
shl edi, 1
mov ecx, esi
mov ebp, 1
shl ebp, cl
mov esi, dword [esp + 0x98]
and ebp, esi
cmp ebp, edi
xchg ebp, ebx
setb bl
xchg ebp, ebx
mov edi, dword [esp + 0x5c]
lea edi, [edi + edi*4]
mov esi, dword [esp + 0x80]
lea esi, [esi + edi*2]
and ebx, ebp
or ebx, edx
test bl, bl
jne 0x46fd9f
mov dword [esp + 0x80], esi
mov edx, ecx
mov ecx, dword [esp + 0x84]
mov ebx, esi
shl esi, cl
mov ecx, edx
mov edi, dword [esp + 0x58]
shr edi, cl
mov ecx, dword [esp + 0x94]
shr ebx, cl
mov ebp, dword [esp + 0x98]
and edi, ebp
mov ebp, dword [esp + 0x88]
and esi, ebp
or esi, edi
and ebx, eax
or ebx, esi
mov esi, ebx
add ebx, 0x30
mov dword [esp + 0x70], ebx
mov ecx, edx
mov ebp, dword [esp + 0x80]
shr ebp, cl
mov edi, dword [esp + 0x98]
and ebp, edi
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0xe0]
mov ebx, dword [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0xd4], ebp
mov ebp, dword [esp + 0x4c]
cmp ebp, ebx
jb 0x46fbc4
jmp 0x46ff0f
mov byte [esp + 0xe8], 0
add esp, 0xd8
ret
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov dword [esp], edx
mov ecx, dword [esp + 0x94]
shl ebp, cl
and ebp, edi
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x34]
shr edi, cl
mov edx, dword [esp + 0x88]
and edi, edx
or edi, ebp
mov edx, dword [esp + 0x5c]
or edx, edi
mov dword [esp + 8], edx
mov ecx, esi
mov ebp, dword [esp + 0x34]
shl ebp, cl
mov edi, dword [esp + 0x98]
and ebp, edi
mov edi, dword [esp + 0x58]
or edi, ebp
mov dword [esp + 4], edi
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
call fcn.0046ffa0
movzx eax, byte [esp + 0x20]
test al, al
je 0x46fe6a
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
dec ebx
jmp 0x46fe3c
dec ebx
test ebx, ebx
jl 0x46fe5b
mov ecx, dword [edx + 4]
mov ebp, dword [edx]
cmp ebx, ecx
jae 0x46ff08
add ebp, ebx
cmp byte [ebp], 0x30
je 0x46fe3b
lea eax, [ebx + 1]
mov dword [edx + 0xc], eax
mov byte [esp + 0xe8], 1
add esp, 0xd8
ret
mov byte [esp + 0xe8], 0
add esp, 0xd8
ret
mov ecx, esi
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x8c]
xor eax, eax
mov ebx, 1
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x38]
jmp 0x46fdb9
mov ebp, edx
mov edx, edi
xor edi, edi
xor eax, eax
mov esi, 1
jmp 0x46fa78
xor edx, edx
jmp 0x46fa2d
mov ebx, dword [esp + 0x2c]
jmp 0x46f81e
mov edx, dword [esp + 0x2c]
jmp 0x46f7e5
mov edx, edi
mov ebp, edx
mov edi, ebx
xor esi, esi
jmp 0x46f79c
mov ecx, dword [esp + 0xe0]
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
movzx eax, byte [eax + 0xc]
mov byte [ecx + 0x14], al
mov byte [esp + 0xe8], 1
add esp, 0xd8
ret
mov eax, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
lea eax, [0x5beac0]
mov dword [esp], eax
lea eax, [0x637fa0]
mov dword [esp + 4], eax
call fcn.00431a00
mov ecx, esi
call fcn.0045dff0
mov eax, edi
mov ecx, 0x20
call fcn.0045dff0
mov eax, esi
mov ecx, 0x20
call fcn.0045dff0
call fcn.004303c0
mov eax, edx
mov ecx, 0x14
call fcn.0045dff0
mov eax, edi
mov ecx, 0x100
call fcn.0045e000
mov esi, ebx
mov eax, edi
mov ecx, 0x100
call fcn.0045e0e0
lea eax, [0x5beac0]
mov dword [esp], eax
lea eax, [0x637f98]
mov dword [esp + 4], eax
call fcn.00431a00
nop
call fcn.0045ca10
jmp fcn.0046f720