Function at 0x4660e0
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 0x466953
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 0x46689d
mov edx, dword [esp + 0xe4]
test edx, edx
je 0x46693a
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 0x466890
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 0x466887
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 0x46687e
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 0x46692c
cmp edi, 0x100
jae 0x466920
mov dword [esp + 0x50], esi
lea edx, [0x582060]
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.00465f30
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 0x4663b9
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 0x466877
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 0x46637b
mov edx, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0xe4]
cmp ebx, edx
jge 0x466865
mov ebp, edx
sub edx, ebx
cmp edx, 0x14
jae 0x466914
lea esi, [0x581600]
lea edx, [esi + edx*8]
mov esi, dword [edx]
mov edx, dword [edx + 4]
test esi, esi
je 0x46690f
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.004597f8
mov eax, 0x20
jmp 0x46646e
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 0x466496
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 0x46645c
jmp 0x466903
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], ebp
mov edx, dword [esp + 0xe0]
mov ecx, eax
jmp 0x4664c2
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 0x4664ea
mov edi, eax
sub eax, ecx
cmp edi, 0x20
jae 0x4668f7
mov esi, dword [edx + 4]
mov ebx, dword [edx]
movzx ebp, byte [esp + edi + 0xb4]
cmp eax, esi
jb 0x4664a9
jmp 0x4668f0
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 0x466839
mov ebp, dword [esp + 0x34]
test ebp, ebp
jne 0x4668d8
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 0x4668d8
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 0x466621
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 0x46676e
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 0x46675f
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 0x466584
jmp 0x4668cf
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.00466960
movzx eax, byte [esp + 0x20]
test al, al
je 0x46682a
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
dec ebx
jmp 0x4667fc
dec ebx
test ebx, ebx
jl 0x46681b
mov ecx, dword [edx + 4]
mov ebp, dword [edx]
cmp ebx, ecx
jae 0x4668c8
add ebp, ebx
cmp byte [ebp], 0x30
je 0x4667fb
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 0x466779
mov ebp, edx
mov edx, edi
xor edi, edi
xor eax, eax
mov esi, 1
jmp 0x466438
xor edx, edx
jmp 0x4663ed
mov ebx, dword [esp + 0x2c]
jmp 0x4661de
mov edx, dword [esp + 0x2c]
jmp 0x4661a5
mov edx, edi
mov ebp, edx
mov edi, ebx
xor esi, esi
jmp 0x46615c
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.00459650
mov eax, ebp
mov ecx, ebx
call fcn.00459650
lea eax, [0x4cfbc0]
mov dword [esp], eax
lea eax, [0x50fb20]
mov dword [esp + 4], eax
call fcn.00430030
mov ecx, esi
call fcn.00459650
mov eax, edi
mov ecx, 0x20
call fcn.00459650
mov eax, esi
mov ecx, 0x20
call fcn.00459650
call fcn.0042eb20
mov eax, edx
mov ecx, 0x14
call fcn.00459650
mov eax, edi
mov ecx, 0x100
call fcn.00459660
mov esi, ebx
mov eax, edi
mov ecx, 0x100
call fcn.00459720
lea eax, [0x4cfbc0]
mov dword [esp], eax
lea eax, [0x50fb18]
mov dword [esp + 4], eax
call fcn.00430030
nop
call fcn.00458070
jmp fcn.004660e0