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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x7c
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0x14]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 4]
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x50], edx
cdq
mov dword [esp + 0x60], ebp
xor ebp, ebp
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x5c], edi
mov edi, edx
xor edx, edx
sub edx, eax
mov dword [esp], ecx
mov ecx, ebp
mov esi, dword [esp + 0x94]
sbb ecx, edi
mov dword [esp + 0x58], ebx
mov ebx, 0x80
mov dword [esp + 0x4c], edi
mov edi, esi
sub edi, ebx
mov edi, dword [esp + 0x98]
mov ebx, edi
sbb ebx, ebp
jge 0x46b714
mov ebx, 1
jmp 0x46b716
xor ebx, ebx
test ebx, ebx
jne 0x46b76f
mov dword [esp + 8], edx
mov dword [esp + 0x48], eax
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
add esi, dword [esp + 0x48]
mov ecx, esi
adc edi, dword [esp + 0x4c]
mov ebp, 0x80
add ebx, 0xffffffff
adc edx, 0xffffffff
add eax, 0x10
sub ecx, ebp
mov ebp, 0
mov ecx, edi
sbb ecx, ebp
jge 0x46b732
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x48]
mov ebx, 0x40
mov ebp, esi
sub ebp, ebx
mov ebx, 0
mov ebp, edi
sbb ebp, ebx
jge 0x46b78a
mov ebx, 1
jmp 0x46b78c
xor ebx, ebx
test ebx, ebx
je 0x46b79b
xor ebx, ebx
mov dword [esp + 0x6c], ebx
jmp 0x46b8cc
mov dword [esp + 0x48], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov ebx, dword [eax + 8]
lea ecx, [esi - 0x40]
mov edx, dword [eax + 0xc]
cmp ecx, 0x1f
ja 0x46b7c8
shrd ebx, edx, cl
shr edx, cl
mov dword [esp + 0x6c], edx
jmp 0x46b7d2
xor ebx, ebx
mov dword [esp + 0x6c], ebx
mov ebx, edx
shr ebx, cl
add esi, dword [esp + 0x48]
mov ecx, esi
adc edi, dword [esp + 0x4c]
mov edx, 0x40
add eax, 0x10
add dword [esp + 0x60], 0xffffffff
adc ebp, 0xffffffff
sub ecx, edx
mov edx, 0
mov ecx, edi
sbb ecx, edx
jl 0x46bf19
mov edx, ebx
or edx, dword [esp + 0x6c]
je 0x46b7af
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x5c], ebp
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x58]
mul ebx
mov eax, ebx
mov ebp, edx
mul dword [esp + 0x68]
add ebp, eax
mov ecx, edx
mov eax, dword [esp + 0x58]
adc ecx, 0
mul edi
add eax, ebp
mov ebx, edx
adc ebx, ecx
sub eax, ebp
mov ebp, ebx
sbb ebp, ecx
jae 0x46b849
mov ebp, 1
jmp 0x46b84b
xor ebp, ebp
mov eax, dword [esp + 0x68]
lea ecx, [esi - 0x40]
mul edi
mov edi, dword [esp + 0x64]
add ebp, edx
add eax, ebx
adc ebp, 0
mov ebx, dword [edi + 8]
cmp ecx, 0x1f
mov edx, dword [edi + 0xc]
ja 0x46b873
mov edi, edx
shrd ebx, edx, cl
shr edi, cl
jmp 0x46b879
mov ebx, edx
xor edi, edi
shr ebx, cl
add esi, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
adc edx, dword [esp + 0x4c]
add dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x24], edx
adc dword [esp + 0x5c], 0xffffffff
sub ebx, eax
mov eax, esi
sbb edi, ebp
mov ebp, dword [esp + 0x64]
add ebp, 0x10
mov dword [esp + 0x64], ebp
mov ebp, 0x40
sub eax, ebp
mov ebp, 0
sbb edx, ebp
jge 0x46b819
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x48]
xor ebp, ebp
mov dword [esp + 0x70], ebx
xor ebx, ebx
sub ebx, esi
mov dword [esp + 0x10], ebx
mov ebx, esi
sbb ebp, edi
mov dword [esp + 0xc], ebp
or ebx, edi
mov ebx, dword [esp + 0x70]
jne 0x46b8f3
xor ebp, ebp
xor edx, edx
jmp 0x46bcd8
mov dword [esp + 0x24], edi
mov dword [esp + 0x70], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x58]
mov eax, ebp
mov ebx, dword [esp + 0x70]
mul ebx
mov eax, ebx
mov edi, edx
mul dword [esp + 0x68]
add edi, eax
mov eax, ebp
mov ebx, edx
adc ebx, 0
mul dword [esp + 0x6c]
add eax, edi
mov ebp, edx
adc ebp, ebx
sub eax, edi
mov eax, ebp
sbb eax, ebx
jae 0x46b93d
mov ebx, 1
jmp 0x46b93f
xor ebx, ebx
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x68]
add ebx, edx
add eax, ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
adc ebx, 0
cmp esi, 0x1f
mov edi, dword [eax + 0xc]
mov dword [esp + 0x14], edi
mov ebp, dword [eax + 8]
mov edi, dword [eax]
mov edx, dword [eax + 4]
ja 0x46b975
mov ecx, esi
mov eax, edx
shrd edi, edx, cl
shr eax, cl
jmp 0x46b97d
mov ecx, esi
mov edi, edx
shr edi, cl
xor eax, eax
mov edx, dword [esp + 0x10]
lea ecx, [edx + 0x40]
cmp ecx, 0x1f
ja 0x46b99e
mov edx, dword [esp + 0x14]
shld edx, ebp, cl
mov dword [esp + 0x1c], edx
mov edx, ebp
shl edx, cl
mov dword [esp + 0x18], edx
jmp 0x46b9ae
mov edx, ebp
shl edx, cl
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edx
or edi, dword [esp + 0x18]
or eax, dword [esp + 0x1c]
cmp esi, 0x1f
ja 0x46b9c8
mov ecx, esi
mov edx, dword [esp + 0x14]
shrd ebp, edx, cl
shr edx, cl
jmp 0x46b9d2
mov ecx, esi
xor edx, edx
mov ebp, dword [esp + 0x14]
shr ebp, cl
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc]
adc ecx, dword [esp + 4]
add esi, dword [esp + 0x48]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x24]
adc esi, dword [esp + 0x4c]
add dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x24], esi
mov esi, edi
adc dword [esp + 0x5c], 0xffffffff
sub esi, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov ecx, eax
sbb ecx, ebx
mov ebx, dword [esp + 0x64]
add ebx, 0x10
mov dword [esp + 0x64], ebx
mov ebx, esi
sub ebx, edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
sbb ecx, eax
mov esi, dword [esp + 0x28]
jb 0x46ba3c
or ebx, ecx
je 0x46ba3c
mov eax, 1
jmp 0x46ba3e
xor eax, eax
sub ebp, eax
mov eax, esi
sbb edx, 0
or eax, dword [esp + 0x24]
je 0x46bf10
mov eax, ebp
or eax, edx
je 0x46b907
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x28], esi
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x70]
push dword [esp + 0x64]
call fcn.0047af10
mov dword [esp + 4], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], eax
cmp dword [esp + 0x28], 0x1f
mov ebx, dword [edx + 8]
mov eax, dword [edx + 0xc]
mov esi, dword [edx]
mov ebp, dword [edx + 4]
ja 0x46baab
mov ecx, dword [esp + 0x28]
shrd esi, ebp, cl
shr ebp, cl
mov dword [esp + 0x34], ebp
jmp 0x46bab9
mov esi, ebp
xor edx, edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], edx
shr esi, cl
neg ecx
add ecx, 0x40
cmp ecx, 0x1f
ja 0x46bace
mov ebp, eax
mov edx, ebx
shld ebp, ebx, cl
shl edx, cl
jmp 0x46bad4
mov ebp, ebx
xor edx, edx
shl ebp, cl
or dword [esp + 0x34], ebp
or esi, edx
cmp dword [esp + 0x28], 0x1f
ja 0x46baee
mov ebp, eax
mov ecx, dword [esp + 0x28]
shrd ebx, eax, cl
shr ebp, cl
jmp 0x46baf8
mov ebx, eax
xor ebp, ebp
mov ecx, dword [esp + 0x28]
shr ebx, cl
mov ecx, dword [esp + 0x74]
mov eax, ecx
mul dword [esp + 0x54]
mov eax, ecx
mov edi, edx
mul dword [esp + 0x50]
add edi, eax
mov ecx, edx
mov eax, dword [esp + 0x54]
adc ecx, 0
mul dword [esp + 0x78]
add eax, edi
adc edx, ecx
sub eax, edi
mov dword [esp + 0x2c], edx
sbb edx, ecx
jae 0x46bb2e
mov edi, 1
jmp 0x46bb30
xor edi, edi
mov eax, dword [esp + 0x50]
mul dword [esp + 0x78]
add edi, edx
add eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, esi
adc edi, 0
sub eax, dword [esp + 8]
mov ecx, dword [esp + 0x34]
mov edx, ecx
sbb edx, dword [esp + 4]
mov dword [esp + 0x10], eax
sub eax, esi
mov dword [esp + 0xc], edx
sbb edx, ecx
jb 0x46bb6e
or eax, edx
je 0x46bb6e
mov eax, 1
jmp 0x46bb70
xor eax, eax
mov ecx, dword [esp + 0x70]
sub ebx, eax
mov eax, dword [esp + 0x58]
sbb ebp, 0
mul ecx
mov eax, ecx
mov esi, edx
mul dword [esp + 0x68]
add dword [esp + 0x60], 0xffffffff
mov ecx, edx
adc dword [esp + 0x5c], 0xffffffff
add esi, eax
mov eax, dword [esp + 0x58]
adc ecx, 0
mul dword [esp + 0x6c]
add eax, esi
adc edx, ecx
sub eax, esi
mov dword [esp + 0x1c], edx
sbb edx, ecx
jae 0x46bbb5
mov ecx, 1
jmp 0x46bbb7
xor ecx, ecx
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x68]
add ecx, edx
add eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
adc ecx, 0
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
mov edx, esi
sbb edx, edi
mov dword [esp + 0x14], eax
sub eax, ecx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x3c]
sbb edx, esi
jb 0x46bbff
or eax, edx
je 0x46bbff
mov eax, 1
jmp 0x46bc01
xor eax, eax
sub ebx, eax
mov esi, dword [esp + 0x28]
sbb ebp, 0
add esi, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
adc edx, dword [esp + 0x4c]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x24], edx
mul esi
mov eax, esi
mov edi, edx
mul dword [esp + 0x68]
add edi, eax
mov esi, edx
mov eax, dword [esp + 0x58]
adc esi, 0
mul dword [esp + 0x78]
add eax, edi
adc edx, esi
sub eax, edi
mov dword [esp + 0x20], edx
sbb edx, esi
jae 0x46bc54
mov esi, 1
jmp 0x46bc56
xor esi, esi
mov eax, dword [esp + 0x68]
mul dword [esp + 0x78]
add esi, edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
adc esi, 0
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x14]
mov eax, esi
sub eax, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
mov edx, edi
sbb edx, ecx
mov dword [esp + 0x70], eax
sub eax, esi
mov ecx, edx
mov dword [esp + 0x6c], edx
sbb ecx, edi
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
jb 0x46bca4
or eax, ecx
je 0x46bca4
mov eax, 1
jmp 0x46bca6
xor eax, eax
sub ebx, eax
mov eax, dword [esp + 0x64]
sbb ebp, 0
sub ebx, edx
mov edx, dword [esp + 0x28]
sbb ebp, esi
add eax, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebp
or edx, dword [esp + 0x24]
jne 0x46ba69
mov edx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x70]
xor ecx, ecx
mov esi, dword [esp + 0x5c]
sub esi, ecx
jl 0x46beee
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], ebx
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x70]
push dword [esp + 0x64]
call fcn.0047af10
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov ebp, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esp + 0x74]
mov eax, edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
mul ecx
mov eax, edi
mov ebx, edx
mul dword [esp + 0x50]
add ebx, eax
mov eax, ecx
mov edi, edx
adc edi, 0
mul dword [esp + 0x78]
add eax, ebx
mov ecx, edx
adc ecx, edi
sub eax, ebx
mov ebx, ecx
sbb ebx, edi
jae 0x46bd5c
mov ebx, 1
jmp 0x46bd5e
xor ebx, ebx
mov eax, dword [esp + 0x50]
mul dword [esp + 0x78]
add ebx, edx
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov eax, ecx
adc ebx, 0
sub eax, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov edx, edi
sbb edx, dword [esp + 0x14]
mov dword [esp + 8], eax
sub eax, ecx
mov dword [esp + 4], edx
sbb edx, edi
jb 0x46bd9e
or eax, edx
je 0x46bd9e
mov eax, 1
jmp 0x46bda0
xor eax, eax
mov ecx, dword [esp + 0x70]
sub ebp, eax
mov eax, dword [esp + 0x58]
sbb esi, 0
mul ecx
mov eax, ecx
mov edi, edx
mul dword [esp + 0x68]
add dword [esp + 0x60], 0xffffffff
mov ecx, edx
adc dword [esp + 0x5c], 0xffffffff
add edi, eax
mov eax, dword [esp + 0x58]
adc ecx, 0
mul dword [esp + 0x6c]
add eax, edi
adc edx, ecx
sub eax, edi
mov dword [esp + 0x20], edx
sbb edx, ecx
jae 0x46bde5
mov ecx, 1
jmp 0x46bde7
xor ecx, ecx
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x68]
add ecx, edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
adc ecx, 0
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 8]
mov eax, ecx
sub eax, dword [esp + 0x30]
mov edi, dword [esp + 4]
mov edx, edi
sbb edx, ebx
mov dword [esp + 0x10], eax
sub eax, ecx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x34]
sbb edx, edi
jb 0x46be2f
or eax, edx
je 0x46be2f
mov eax, 1
jmp 0x46be31
xor eax, eax
mov ebx, dword [esp + 0x74]
sub ebp, eax
mov eax, dword [esp + 0x58]
sbb esi, 0
mul ebx
mov eax, ebx
mov edi, edx
mul dword [esp + 0x68]
add edi, eax
mov ebx, edx
mov eax, dword [esp + 0x58]
adc ebx, 0
mul dword [esp + 0x78]
add eax, edi
adc edx, ebx
sub eax, edi
mov dword [esp + 0x24], edx
sbb edx, ebx
jae 0x46be6c
mov ebx, 1
jmp 0x46be6e
xor ebx, ebx
mov eax, dword [esp + 0x68]
mul dword [esp + 0x78]
add ebx, edx
add eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
adc ebx, 0
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x10]
mov eax, ebx
sub eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov edx, edi
sbb edx, ecx
mov dword [esp + 0x70], eax
sub eax, ebx
mov ecx, edx
mov dword [esp + 0x6c], edx
sbb ecx, edi
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jb 0x46bebc
or eax, ecx
je 0x46bebc
mov eax, 1
jmp 0x46bebe
xor eax, eax
sub ebp, eax
mov eax, dword [esp + 0x64]
sbb esi, 0
sub ebp, edx
mov ecx, dword [esp + 0x5c]
sbb esi, ebx
xor edx, edx
add eax, 0x10
mov dword [esp + 0x64], eax
sub ecx, edx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], esi
jge 0x46bcf2
mov edx, esi
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp]
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0xc], edx
xor edx, edx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], eax
mov dword [ecx + 8], ebp
mov dword [ecx + 4], edx
mov dword [ecx], edx
add esp, 0x7c
pop ebp
pop ebx
pop edi
pop esi
ret
mov ebx, dword [esp + 0x70]
jmp 0x46bcd8
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], ebp
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x48]
jmp 0x46b8cc