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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x8c
mov esi, eax
mov ebp, edx
xor eax, eax
mov dword [esp + 0x78], ecx
mov ebx, dword [esp + 0xa8]
mov edx, ebx
mov ecx, dword [esp + 0xac]
mov edi, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, edi
shl edx, 0x1f
xor ecx, edx
mov dword [esp + 0x2c], ebx
and ebx, 4
xor ecx, dword [ebp]
or ebx, eax
je 0x46877f
xor edi, edi
jmp 0x468781
mov edx, ecx
mov ecx, dword [esi + 4]
mov eax, ecx
shr edx, 0x1f
mov dword [esp + 0x74], edx
cdq
mov eax, dword [ebp + 4]
mov ebx, edx
cdq
mov eax, ecx
sub eax, dword [ebp + 4]
mov dword [esp + 0x60], ecx
sbb ebx, edx
xor edx, edx
mov ecx, ebx
mov dword [esp + 0x70], 0
sub ecx, edx
mov edx, dword [esp + 0x74]
jl 0x4687bb
xor ecx, ecx
mov dword [esp + 0x64], ecx
jmp 0x4687f2
mov ecx, esi
mov esi, ebp
xor ebp, ebp
mov dword [esp], ecx
mov ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, ebx
mov ebx, ebp
mov ebp, edx
sbb ebx, ecx
add dword [esp + 0x60], eax
or ebp, dword [esp + 0x70]
mov ebp, dword [esp]
jne 0x4687e3
xor ecx, ecx
jmp 0x4687e8
mov ecx, 0x80000000
mov dword [esp + 0x64], 0x80000000
xor edi, ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x84], ecx
push 2
pop ecx
mov dword [esp], 0
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ebp
mov dword [esp + 4], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x88], esi
mov edi, dword [esp]
jmp 0x468846
xor ebp, ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x80], ebp
mov esi, 0x40
xor edx, edx
xor ebp, ebp
sub esi, eax
sbb ebp, ebx
mov ecx, ebp
sub ecx, edx
jl 0x468861
or ecx, esi
jne 0x46890a
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x6c], eax
xor eax, eax
sub eax, esi
sbb ebx, ebp
mov ebp, dword [esp + 4]
add ebp, 0xffffffff
mov dword [esp + 4], ebp
adc edi, 0xffffffff
or ebp, edi
jne 0x468836
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x88]
mov ecx, dword [esi]
mov dword [edx], ecx
mov ebx, dword [esi + 4]
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 4], ebx
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ecx
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov edi, dword [esp + 0x7c]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + 0x14], ebx
and ecx, 2
mov dword [edx], edi
xor edx, edx
or ecx, edx
je 0x4688ff
mov edx, dword [esp + 0x78]
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
mov dword [edx + 0x18], ecx
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1c], ebx
mov dword [edx + 0x20], ebp
mov dword [edx + 0x24], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
xor edi, dword [esp + 0x64]
mov dword [edx + 0x28], ecx
mov dword [edx + 0x2c], eax
mov dword [edx + 0x18], edi
add esp, 0x8c
pop ebp
pop ebx
pop edi
pop esi
ret
mov dword [esp + 4], esi
or ebx, eax
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x88]
je 0x4689db
cmp eax, 0x1f
ja 0x46893f
mov ecx, eax
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
shrd ebp, ebx, cl
mov dword [esp + 0x6c], ebp
shr ebx, cl
jmp 0x46894d
mov ecx, eax
xor ebx, ebx
mov ebp, dword [esp + 0x68]
shr ebp, cl
mov dword [esp + 0x6c], ebp
cmp dword [esp + 4], 0x1f
ja 0x46897c
mov dword [esp + 0x7c], edi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
shld edi, ebp, cl
mov dword [esp + 0x68], edi
shl ebp, cl
mov dword [esp], ebp
mov edi, dword [esp + 0x7c]
jmp 0x468992
xor ebp, ebp
mov dword [esp], ebp
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x84]
shl ebp, cl
mov dword [esp + 0x68], ebp
mov ebp, dword [esp]
or dword [esp + 0x6c], ebp
or dword [esp + 0x68], ebx
cmp eax, 0x1f
ja 0x4689c0
mov ecx, eax
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
shrd ebx, ebp, cl
mov dword [esp + 0x84], ebx
shr ebp, cl
jmp 0x4689d4
mov ecx, eax
xor ebp, ebp
mov ebx, dword [esp + 0x80]
shr ebx, cl
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x7c], edi
mov dword [esp + 0x74], edx
mov dword [esp + 0x88], esi
mov ebx, dword [esp + 0x2c]
jmp 0x468a33
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0x74]
sub edx, eax
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 4]
mov ebp, dword [esp + 0x70]
sbb ecx, ebp
xor edi, dword [esp + 0x64]
xor ebx, 2
mov esi, dword [esp + 0x78]
add esi, 0x18
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
or eax, dword [esp + 0x70]
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
jne 0x468b29
mov edi, ecx
xor ebp, ebp
add edi, dword [esp + 0x6c]
mov dword [esp + 0x30], ebp
mov ebp, edx
mov eax, edi
adc ebp, dword [esp + 0x68]
and ebx, 0xf
sub eax, ecx
mov ecx, ebp
sbb ecx, edx
jae 0x468a77
mov dword [esp + 0x4c], 1
jmp 0x468a7d
xor eax, eax
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x84]
add esi, edx
mov dword [esp + 0x54], eax
mov eax, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x80]
adc ecx, 0
sub eax, edx
mov edx, 0
mov eax, ecx
sbb eax, edx
jae 0x468ac2
mov dword [esp + 0x48], 1
jmp 0x468ac8
xor eax, eax
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x38]
add esi, edx
mov eax, dword [esp + 0x54]
adc ecx, eax
mov dword [esp + 0x34], esi
sub esi, edx
mov edx, ecx
mov esi, dword [esp + 0x34]
sbb edx, eax
jae 0x468aeb
mov edx, 1
jmp 0x468aed
xor edx, edx
mov eax, dword [esp + 0x48]
add eax, edx
xor edx, edx
or eax, edx
je 0x468c17
mov eax, ebp
mov edx, esi
shl eax, 0x1f
shr edi, 1
or edi, eax
mov eax, ecx
shr ebp, 1
shl edx, 0x1f
shl eax, 0x1f
or ebp, edx
shr ecx, 1
shr esi, 1
or ecx, 0x80000000
inc dword [esp + 0x60]
or esi, eax
jmp 0x468c17
add ebx, 0xfffffff8
mov ebp, dword [esp + 0x6c]
adc dword [esp + 0x30], 0xffffffff
sub ebp, ecx
mov eax, dword [esp + 0x68]
sbb eax, edx
jb 0x468b4a
or ebp, eax
je 0x468b4a
mov eax, 1
jmp 0x468b4c
xor eax, eax
mov esi, dword [esp + 0x88]
mov edi, ecx
sub edi, dword [esp + 0x6c]
mov ebp, edx
mov ecx, dword [esp + 0x80]
mov edx, dword [esi + 8]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0xc]
mov esi, dword [esp + 0x84]
sbb ebp, dword [esp + 0x68]
add esi, eax
mov dword [esp + 0x3c], esi
adc ecx, 0
sub esi, eax
mov eax, 0
mov dword [esp + 0x50], ecx
sbb ecx, eax
jae 0x468b99
mov dword [esp + 0x44], 1
jmp 0x468b9f
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov esi, eax
sub esi, dword [esp + 0x3c]
mov ecx, edx
sbb ecx, dword [esp + 0x50]
sub eax, esi
sbb edx, ecx
jae 0x468bbc
mov edx, 1
jmp 0x468bbe
xor edx, edx
mov eax, dword [esp + 0x44]
add eax, edx
xor edx, edx
or eax, edx
je 0x468c17
xor eax, eax
mov edx, dword [esp + 0x7c]
xor edx, 0x80000000
mov dword [esp + 0x7c], edx
mov edx, edi
xor edi, edi
sub edi, edx
mov edx, ebp
mov ebp, eax
mov eax, edi
sbb ebp, edx
or eax, ebp
jne 0x468bf4
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x468bfc
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x28]
cdq
mov eax, esi
mov esi, dword [esp + 0x28]
sub esi, eax
mov eax, ecx
mov ecx, edx
mov dword [esp + 0x64], 0x80000000
sbb ecx, eax
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [edx], eax
mov edx, ebx
and edx, 0x10
xor eax, eax
or edx, eax
jne 0x468c57
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x60]
mov dword [edx + 4], eax
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], ebp
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov edx, ebx
xor eax, eax
and edx, 2
or edx, eax
jne 0x4689f0
jmp 0x4688ff
mov edx, ecx
xor eax, eax
mov dword [esp + 0x58], esi
sub edx, eax
mov dword [esp + 0x5c], ecx
jl 0x468c2c
xor eax, eax
push 2
pop edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x24]
mov ebx, eax
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
jmp 0x468ca0
xor esi, esi
xor edi, edi
mov ebp, dword [esp + 0x58]
or ebp, dword [esp + 0x5c]
jne 0x468cf4
add ecx, 0x40
mov dword [esp + 0x58], esi
adc ebx, 0
add edx, 0xffffffff
mov ebp, edx
adc eax, 0xffffffff
mov dword [esp + 0x5c], edi
or ebp, eax
jne 0x468c9c
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebp
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 4], 0xfffc0000
jmp 0x468c43
xor eax, eax
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x2c]
sub edx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], esi
jl 0x468df4
mov ecx, dword [esp + 0x5c]
xor eax, eax
shr ecx, 0x1a
and ecx, 0x1e
or eax, ecx
je 0x468d2f
mov edx, 0x55ac
shr edx, cl
and edx, 3
inc edx
jmp 0x468d73
mov edx, dword [esp + 0x58]
and edx, 0xffffff00
mov eax, dword [esp + 0x5c]
or eax, edx
jne 0x468d45
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
fild qword [esp + 8]
shr eax, 0x1f
fld qword [eax*8 + 0x4ea8d0]
faddp st(1)
fstp qword [esp]
mov edx, dword [esp + 4]
sar edx, 0x14
neg edx
add edx, 0x43e
cmp edx, 0x1f
ja 0x468d8d
mov ecx, edx
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
shld ebp, eax, cl
mov dword [esp + 0x5c], ebp
shl eax, cl
jmp 0x468d9b
mov ecx, edx
xor eax, eax
mov ebp, dword [esp + 0x58]
shl ebp, cl
mov dword [esp + 0x5c], ebp
mov ecx, edx
neg ecx
add ecx, 0x40
cmp ecx, 0x1f
ja 0x468db4
mov ebp, edi
shrd esi, ebp, cl
mov dword [esp + 0x58], esi
shr ebp, cl
jmp 0x468dbe
mov esi, edi
xor ebp, ebp
shr esi, cl
mov dword [esp + 0x58], esi
or dword [esp + 0x58], eax
or dword [esp + 0x5c], ebp
cmp edx, 0x1f
ja 0x468dde
mov ecx, edx
mov eax, dword [esp + 0x20]
mov ebp, edi
shld ebp, eax, cl
mov dword [esp + 0x24], ebp
shl eax, cl
jmp 0x468dec
mov ecx, edx
xor eax, eax
mov ebp, dword [esp + 0x20]
shl ebp, cl
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
add dword [esp + 0x1c], edx
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
sub esi, dword [esp + 0x1c]
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ebp
mov dword [edi + 4], esi
jmp 0x468c43