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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x10], 0x7fefffff
mov ecx, edx
and ecx, 0x7fffffff
lea eax, [ecx - 0x3c010000]
lea edi, [ecx - 0x43ff0000]
cmp eax, edi
mov edi, dword [ebp + 0xc]
jae 0x4a3a31
mov eax, ebx
shld ecx, esi, 4
shld esi, edi, 4
and edi, 0xfffffff
neg eax
mov eax, 0x8000000
sbb eax, edi
jae 0x4a3a64
add esi, 1
adc ecx, 0x40000000
jmp 0x4a3a85
xor eax, eax
neg ebx
mov ebx, 0
sbb ebx, edi
sbb eax, esi
mov eax, 0x7fff0000
sbb eax, ecx
jae 0x4a3a8e
shld ecx, esi, 4
shrd edi, esi, 0x1c
and ecx, 0x7ffff
mov eax, edi
or ecx, 0x7ff80000
mov ebx, ecx
jmp 0x4a3c50
xor edi, 0x8000000
add ecx, 0x40000000
or ebx, edi
jne 0x4a3a85
mov eax, esi
and eax, 1
add eax, esi
adc ecx, 0
mov ebx, ecx
jmp 0x4a3c50
mov eax, esi
mov ebx, ecx
jmp 0x4a3c50
mov eax, 0xffffffff
mov ebx, 0x7fefffff
add eax, 1
adc ebx, 0
cmp ecx, 0x43feffff
ja 0x4a3c50
shr ecx, 0x10
mov ebx, 0x3c01
xor eax, eax
sub ebx, ecx
mov dword [esp + 8], ebx
cmp ebx, 0x70
mov ebx, 0
ja 0x4a3c50
mov eax, dword [ebp + 8]
movzx ebx, dx
dec cl
or ebx, 0x10000
mov dword [esp + 0xc], ebx
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x98], eax
mov eax, ecx
mov byte [esp + 0x14], cl
and cl, 0x78
shr cl, 3
neg cl
movsx ecx, cl
mov eax, dword [esp + ecx + 0x98]
mov ebx, dword [esp + ecx + 0x9c]
or eax, dword [esp + ecx + 0xa0]
mov dword [esp + 4], ebx
or ebx, dword [esp + ecx + 0xa4]
mov ch, byte [esp + 0x14]
shr dword [esp + 4], 1
and ch, 7
mov cl, ch
not cl
shr dword [esp + 4], cl
mov cl, ch
shld ebx, eax, cl
shl eax, cl
xor ecx, ecx
or eax, dword [esp + 4]
or eax, ebx
mov eax, dword [ebp + 8]
setne cl
mov dword [esp + 0x68], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 8]
mov ecx, eax
shr al, 3
and al, 0xf
and cl, 7
movzx edi, al
mov byte [esp + 0xc], cl
mov dword [esp + 8], edi
mov esi, dword [esp + edi + 0x70]
mov ebx, dword [esp + edi + 0x74]
mov eax, esi
add esi, esi
shrd eax, ebx, cl
mov ecx, dword [esp + edi + 0x6c]
mov dword [esp + 4], ecx
mov ch, byte [esp + 0xc]
mov edi, dword [esp + 4]
mov cl, ch
shr edi, cl
not cl
shl esi, cl
mov cl, ch
or esi, edi
mov edi, dword [esp + 8]
shr ebx, cl
shld ebx, eax, 4
shld eax, esi, 4
and esi, 0xfffffff
mov edi, dword [esp + edi + 0x68]
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
shrd dword [esp + 8], edi, cl
mov ecx, esi
mov edi, dword [esp + 8]
or edi, dword [esp + 0x14]
cmp edi, 1
sbb ecx, 0x8000000
jb 0x4a3c3c
add eax, 1
jmp 0x4a3c4d
xor esi, 0x8000000
or edi, esi
jne 0x4a3c50
mov ecx, eax
and ecx, 1
add eax, ecx
adc ebx, 0
and edx, 0x80000000
mov edi, 0x80000000
lea ecx, [esp + 0xc0]
lea esi, [esp + 0xb8]
or edx, ebx
push ecx
push esi
push edx
push eax
call fcn.004a3340
add esp, 0x10
movsd xmm0, qword [esp + 0xb8]
mov esi, 0x7fffffff
movsd qword [esp + 0x20], xmm0
and esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea eax, [esi - 0x100000]
shr eax, 0x15
cmp eax, 0x3fe
ja 0x4a3cbc
mov ebx, esi
shr esi, 4
xor eax, eax
shld ebx, edx, 0x1c
shl edx, 0x1c
add esi, 0x3c000000
jmp 0x4a3db6
mov eax, 0xffffffff
mov ecx, 0x7fefffff
cmp eax, edx
sbb ecx, esi
jae 0x4a3ce5
mov ebx, esi
shr esi, 4
xor eax, eax
shld ebx, edx, 0x1c
shl edx, 0x1c
or esi, 0x7fff0000
jmp 0x4a3db6
mov eax, edx
or eax, esi
je 0x4a3dae
bsr eax, edx
bsr ecx, esi
xor eax, 0x1f
xor ecx, 0x1f
add eax, 0x20
test esi, esi
cmovne eax, ecx
mov dword [esp + 8], eax
add al, 0x31
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx eax, al
mov dword [esp + 4], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov esi, dword [esp + eax + 0x60]
mov dword [esp + 0xc], esi
shl esi, cl
not cl
mov edx, dword [esp + eax + 0x5c]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ebx, edx
add eax, 0x75
shr ebx, 1
and eax, 0x7f
shr ebx, cl
mov cl, ch
or ebx, esi
mov esi, 0x3c01
sub esi, eax
mov eax, dword [esp + 4]
shl esi, 0x10
mov eax, dword [esp + eax + 0x64]
shld eax, edi, cl
mov edi, 0x80000000
xor eax, 0x10000
or esi, eax
mov eax, dword [esp + 4]
mov eax, dword [esp + eax + 0x58]
shld edx, eax, cl
shl eax, cl
jmp 0x4a3db6
xor eax, eax
xor edx, edx
xor ebx, ebx
xor esi, esi
movsd qword [esp + 0xb0], xmm0
mov ecx, dword [esp + 0xb4]
and ecx, edi
or ecx, esi
mov esi, dword [ebp + 0x18]
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
mov dword [esi + 8], ebx
mov edx, 0x7fffffff
mov eax, 0xfff00000
mov ecx, 0x7fe00000
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x18], xmm0
and edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
add eax, edx
cmp eax, ecx
mov ecx, dword [ebp + 0x1c]
jae 0x4a3e20
mov ebx, edx
shr edx, 4
xor eax, eax
shld ebx, esi, 0x1c
shl esi, 0x1c
add edx, 0x3c000000
jmp 0x4a3f15
mov eax, 0xffffffff
cmp eax, esi
sbb dword [esp + 0x10], edx
jae 0x4a3e46
mov ebx, edx
shr edx, 4
xor eax, eax
shld ebx, esi, 0x1c
shl esi, 0x1c
or edx, 0x7fff0000
jmp 0x4a3f15
mov eax, esi
or eax, edx
je 0x4a3f0d
bsr eax, esi
bsr ecx, edx
xor eax, 0x1f
xor ecx, 0x1f
add eax, 0x20
test edx, edx
cmovne eax, ecx
mov dword [esp + 4], eax
add al, 0x31
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx eax, al
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + eax + 0x40]
mov dword [esp + 8], edx
shl edx, cl
not cl
mov esi, dword [esp + eax + 0x3c]
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov ebx, esi
add eax, 0x75
shr ebx, 1
and eax, 0x7f
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, 0x3c01
sub edx, eax
mov eax, dword [esp + 0x10]
shl edx, 0x10
mov eax, dword [esp + eax + 0x44]
shld eax, edi, cl
xor eax, 0x10000
or edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax + 0x38]
shld esi, eax, cl
shl eax, cl
mov ecx, dword [ebp + 0x1c]
jmp 0x4a3f15
xor eax, eax
xor esi, esi
xor ebx, ebx
xor edx, edx
movsd qword [esp + 0xa8], xmm0
mov edi, 0x80000000
and edi, dword [esp + 0xac]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebx
or edi, edx
mov dword [ecx + 0xc], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret