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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x46f135
sub esp, 0x74
mov eax, dword [esp + 0x88]
cmp eax, 0x12
jg 0x46f11c
mov edx, dword [esp + 0x80]
test edx, edx
sete bl
mov ebp, dword [esp + 0x7c]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x46ebd0
mov eax, dword [esp + 0x78]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
add esp, 0x74
ret
cmp edx, 1
seta bl
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, 1
or ebx, esi
test bl, bl
je 0x46ebf1
mov ecx, edx
xor ebx, ebx
mov esi, 0x20
jmp 0x46ebf9
mov ecx, edx
mov ebx, ecx
mov edx, ebp
xor esi, esi
test ebx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp edx, 0x10000
setae al
test ebx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and eax, edi
or eax, ebp
test al, al
je 0x46ec2e
shr edx, 0x10
mov eax, ebx
shl ebx, 0x10
or edx, ebx
shr eax, 0x10
add esi, 0x10
jmp 0x46ec30
mov eax, ebx
cmp edx, 0x100
setae bl
test eax, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
and ebx, ebp
or ebx, edi
test bl, bl
je 0x46ec5c
shr edx, 8
shl eax, 0x18
or edx, eax
add esi, 8
lea eax, [0x6874d8]
movzx eax, byte [eax + edx]
lea edx, [eax + esi]
cmp edx, 0x37
jge 0x46ecd8
mov dword [esp + 0x28], edx
lea eax, [eax + esi - 0x37]
neg eax
cmp eax, 0x20
sbb ebx, ebx
lea ebp, [eax - 0x20]
cmp ebp, 0x20
sbb esi, esi
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x70], edx
mov ecx, edi
mov edx, dword [esp + 0x7c]
mov edi, edx
shl edx, cl
mov ecx, eax
shl edi, cl
and edi, ebx
and edx, esi
mov ecx, ebp
mov esi, dword [esp + 0x7c]
shr esi, cl
mov ebp, dword [esp + 0x70]
and esi, ebp
mov ecx, eax
mov eax, dword [esp + 0x80]
shl eax, cl
and eax, ebx
or eax, esi
or eax, edx
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x28]
lea edx, [ebx + edx - 0x37]
jmp 0x46ece5
mov edx, dword [esp + 0x84]
mov eax, ecx
mov edi, dword [esp + 0x7c]
imul ecx, edx, 0x13441
add ecx, 0x4105b6
sar ecx, 0x12
mov ebx, dword [esp + 0x88]
sub ebx, ecx
mov dword [esp + 0x6c], ebx
lea ecx, [ebx - 1]
cmp ecx, 0x37
jg 0x46ed14
test ecx, ecx
xchg esi, ebx
setge bl
xchg esi, ebx
jmp 0x46ed16
xor esi, esi
mov dword [esp + 0x24], ecx
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00470800
mov eax, dword [esp + 0x18]
movzx ecx, byte [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test eax, eax
jge 0x46f104
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x6c]
lea esi, [ebp + 0x15]
cmp esi, 0x16
jae 0x46ed9e
mov esi, dword [esp + 0x2c]
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
mov ebp, dword [esp + 0x30]
test ebp, ebp
sete dl
and edx, edi
test dl, dl
jne 0x46f000
mov edx, dword [esp + 0x24]
neg edx
mov dword [esp + 0x34], edx
xor edi, edi
jmp 0x46f030
movzx esi, byte [esp + 0x21]
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
mov byte [esp + 0x22], cl
mov edi, eax
neg eax
lea ebp, [eax - 0x20]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x70], esi
cmp eax, 0x20
sbb edx, edx
mov dword [esp + 0x68], edx
add edi, 0x20
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebx, ebx
mov dword [esp + 0x64], ebx
mov ecx, ebp
mov edx, 1
shr edx, cl
and edx, esi
mov ecx, edi
mov esi, 1
shl esi, cl
and esi, ebx
or esi, edx
mov ecx, eax
mov edx, 1
shl edx, cl
mov ebx, dword [esp + 0x68]
and edx, ebx
add edx, 0xffffffff
mov dword [esp + 0x3c], edx
adc esi, 0xffffffff
mov dword [esp + 0x60], esi
mov edx, dword [esp + 0x40]
shr edx, cl
mov ecx, ebp
mov esi, dword [esp + 0x44]
mov ebp, esi
shl esi, cl
mov ecx, edi
mov edi, ebp
shr ebp, cl
and edx, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x70]
and esi, ebx
or esi, edx
mov edx, dword [esp + 0x64]
and ebp, edx
or ebp, esi
mov edx, ecx
mov ecx, eax
mov ebx, edi
shr edi, cl
and edi, edx
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x60]
and eax, ebx
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
and edx, ebx
mov dword [esp + 0x48], edx
movzx ebx, byte [esp + 0x21]
test bl, bl
je 0x46ef2d
mov dword [esp + 0x40], ebp
mov ebx, dword [esp + 0x50]
inc ebx
neg ebx
lea ecx, [ebx - 0x20]
mov dword [esp + 0x70], ecx
cmp ecx, 0x20
sbb esi, esi
neg ecx
mov dword [esp + 0x68], ecx
cmp ecx, 0x20
sbb edi, edi
mov ecx, dword [esp + 0x70]
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x68]
mov edx, 1
shr edx, cl
and edx, edi
and ebp, esi
or ebp, edx
cmp ebp, eax
sete dl
xchg ebp, ebx
setb bl
xchg ebp, ebx
cmp ebx, 0x20
sbb esi, esi
mov ecx, ebx
mov ebx, 1
shl ebx, cl
and ebx, esi
mov esi, dword [esp + 0x48]
cmp ebx, esi
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, edx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x46eee4
movzx ecx, byte [esp + 0x22]
jmp 0x46ef12
cmp ebx, esi
sete cl
and edx, ecx
test dl, dl
je 0x46ef20
movzx ecx, byte [esp + 0x22]
test cl, cl
je 0x46ef12
test dl, dl
je 0x46ef25
test cl, cl
je 0x46ef25
mov edx, dword [esp + 0x40]
test edx, 1
setne bl
jmp 0x46efa7
mov edx, dword [esp + 0x40]
mov ebx, 1
jmp 0x46efa7
movzx ecx, byte [esp + 0x22]
mov edx, dword [esp + 0x40]
xor ebx, ebx
jmp 0x46efa7
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x50]
lea ecx, [esi + 1]
neg ecx
cmp ecx, 0x20
sbb esi, esi
mov ebx, ebp
lea ebp, [ecx - 0x20]
mov dword [esp + 0x70], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x68], edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
shr eax, cl
test esi, eax
sete al
mov byte [esp + 0x23], al
shr edx, cl
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x4c]
shr eax, cl
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
shl ebp, cl
and edx, esi
and ebp, edi
or ebp, edx
mov edx, dword [esp + 0x68]
and eax, edx
or eax, ebp
cmp eax, 1
sete al
movzx edx, byte [esp + 0x23]
and eax, edx
movzx ecx, byte [esp + 0x22]
mov edx, ebx
mov esi, dword [esp + 0x48]
mov ebx, eax
mov eax, dword [esp + 0x4c]
test eax, eax
setne al
test esi, esi
xchg ebp, ebx
setne bl
xchg ebp, ebx
or eax, ebp
test al, al
je 0x46efbd
xor ecx, ecx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov ebp, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
xor ecx, 1
mov byte [esp + 0xc], cl
mov byte [esp + 0xd], bl
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], ecx
call fcn.0046f140
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x6c]
sub ecx, edx
inc ecx
mov dword [eax + 0x10], ecx
add esp, 0x74
ret
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x6c]
mov esi, 1
mov ecx, 1
jmp 0x46eda3
mov eax, dword [esp + 0x38]
inc eax
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x40]
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0x50]
cmp edi, edx
jge 0x46f000
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], esi
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0x70], edx
lea ebx, [edx + edx*4]
sub ebp, ebx
mov eax, ebp
mov ebx, 0x33333333
mul ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], eax
mov eax, 0xcccccccd
mul esi
shr edx, 2
mov dword [esp + 0x5c], edx
lea ebx, [edx + edx*4]
sub esi, ebx
lea ebx, [esi + ebp]
mov eax, 0xcccccccd
mov esi, edx
mul ebx
shr edx, 2
mov dword [esp + 0x58], edx
add esi, 0
mov dword [esp + 0x54], esi
mov ebx, dword [esp + 0x64]
add esi, ebx
add edx, esi
mov dword [esp + 0x64], edx
mov eax, edx
mov edi, 5
mul edi
mov edi, dword [esp + 0x5c]
add edi, 0
mov edi, dword [esp + 0x70]
adc edi, 0
mov ebp, dword [esp + 0x54]
add ebp, ebx
mov ebx, dword [esp + 0x68]
adc edi, ebx
mov ebx, dword [esp + 0x58]
add ebx, esi
adc edi, 0
lea ebx, [edi + edi*4]
add edx, ebx
mov ebx, dword [esp + 0x30]
cmp ebx, edx
setne dl
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
setne bl
or edx, ebx
test dl, dl
je 0x46f017
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x6c]
movzx esi, byte [esp + 0x21]
jmp 0x46eda3
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d2cd0]
mov dword [esp + 4], eax
call fcn.00433470
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d2cc8]
mov dword [esp + 4], eax
call fcn.00433470
nop
call fcn.0045dbb0
jmp fcn.0046eb70