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

Disassembly:
mov ecx, dword [0x14a5898]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x496af4
sub esp, 0xa8
lea edi, [esp + 0xcc]
xor eax, eax
call fcn.0046f20b
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x496adb
mov edx, dword [esp + 0xb0]
lea ebx, [edx - 1]
test ebx, ebx
jge 0x496473
mov ebp, edx
neg edx
mov eax, 0xaaaaaaab
mov ebx, edx
imul edx
sub edx, ebp
sar edx, 3
sar ebx, 0x1f
sub edx, ebx
mov esi, dword [esp + 0xac]
sub esi, edx
lea edx, [edx + edx*2]
dec esi
lea ebx, [ebp + edx*4 + 0xb]
jmp 0x49647a
mov esi, dword [esp + 0xac]
cmp ebx, 0xc
jl 0x496495
mov eax, 0xaaaaaaab
imul ebx
add edx, ebx
sar edx, 3
lea ebp, [edx + edx*2]
shl ebp, 2
add esi, edx
sub ebx, ebp
mov edx, dword [esp + 0xc4]
test edx, edx
jge 0x4964d3
lea ebp, [edx + 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov eax, 0x44b82fa1
mov edi, edx
imul ebp
sar edx, 0x1c
sar ebp, 0x1f
sub edx, ebp
mov ebp, dword [esp + 0xc0]
sub ebp, edx
imul edx, edx, 0x3b9aca00
dec ebp
lea edx, [edi + edx + 0x3b9aca00]
jmp 0x4964da
mov ebp, dword [esp + 0xc0]
cmp edx, 0x3b9aca00
jl 0x4964fa
mov eax, 0x44b82fa1
mov edi, edx
imul edx
sar edx, 0x1c
imul eax, edx, 0x3b9aca00
add ebp, edx
sub edi, eax
jmp 0x4964fc
mov edi, edx
test ebp, ebp
jge 0x496534
lea edx, [ebp + 1]
neg edx
mov dword [esp + 0x7c], edx
mov eax, 0x88888889
imul edx
sub edx, ebp
dec edx
sar edx, 5
mov eax, edi
mov edi, dword [esp + 0x7c]
sar edi, 0x1f
sub edx, edi
mov edi, dword [esp + 0xbc]
sub edi, edx
imul edx, edx, 0x3c
dec edi
lea ebp, [ebp + edx + 0x3c]
jmp 0x49653d
mov eax, edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x7c], eax
cmp ebp, 0x3c
jl 0x49655d
mov eax, 0x88888889
imul ebp
add edx, ebp
sar edx, 5
imul eax, edx, 0x3c
add edi, edx
sub ebp, eax
mov eax, dword [esp + 0x7c]
test edi, edi
jge 0x496595
lea edx, [edi + 1]
neg edx
mov dword [esp + 0x78], edx
mov eax, 0x88888889
imul edx
sub edx, edi
dec edx
sar edx, 5
mov eax, ebp
mov ebp, dword [esp + 0x78]
sar ebp, 0x1f
sub edx, ebp
mov ebp, dword [esp + 0xb8]
sub ebp, edx
imul edx, edx, 0x3c
dec ebp
lea edi, [edi + edx + 0x3c]
jmp 0x49659e
mov eax, ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x78], eax
cmp edi, 0x3c
jl 0x4965be
mov eax, 0x88888889
imul edi
add edx, edi
sar edx, 5
imul eax, edx, 0x3c
add ebp, edx
sub edi, eax
mov eax, dword [esp + 0x78]
test ebp, ebp
jge 0x4965f6
lea edx, [ebp + 1]
neg edx
mov dword [esp + 0x74], edx
mov eax, 0xaaaaaaab
imul edx
sub edx, ebp
dec edx
sar edx, 4
mov eax, edi
mov edi, dword [esp + 0x74]
sar edi, 0x1f
sub edx, edi
mov edi, dword [esp + 0xb4]
sub edi, edx
lea edx, [edx + edx*2]
dec edi
lea ebp, [ebp + edx*8 + 0x18]
jmp 0x4965ff
mov eax, edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x74], eax
cmp ebp, 0x18
jl 0x49661e
mov eax, 0xaaaaaaab
imul ebp
add edx, ebp
sar edx, 4
lea eax, [edx + edx*2]
shl eax, 3
add edi, edx
sub ebp, eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ebp
mov edx, esi
sar esi, 0x1f
mov dword [esp + 0x70], esi
nop
add edx, 0xd116ebf
mov dword [esp + 0x2c], edx
adc esi, 0x44
mov dword [esp + 0x6c], esi
shr edx, 1
mov eax, 0xa3d70a3e
mul edx
shr edx, 7
mov dword [esp + 0x68], edx
shr esi, 1
mov eax, 0xa3d70a3e
mul esi
shr edx, 7
mov dword [esp + 0x64], edx
imul esi, edx, 0x190
mov eax, dword [esp + 0x6c]
sub eax, esi
mov dword [esp + 0x60], eax
mov esi, 0xa3d70a
mul esi
mov esi, dword [esp + 0x60]
lea esi, [esi + esi*2]
shl esi, 5
mov ebp, dword [esp + 0x68]
imul edi, ebp, 0x190
mov ebx, dword [esp + 0x2c]
sub ebx, edi
add ebx, esi
shr ebx, 1
mov esi, eax
mov eax, 0xa3d70a3e
mov edi, edx
mul ebx
shr edx, 7
add ebp, 0
mov ebx, dword [esp + 0x64]
adc ebx, 0
add esi, ebp
adc edi, ebx
add edx, esi
adc edi, 0
mov eax, 0x190
mov ebx, edx
mul edx
imul ebp, edi, 0x190
add edx, ebp
mov ebp, eax
mov eax, 0x23ab1
mov esi, edx
mul ebx
mov dword [esp + 0x48], eax
imul ebx, edi, 0x23ab1
add edx, ebx
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 0x44]
sub ebx, ebp
mov ebp, dword [esp + 0x70]
sbb ebp, esi
mov dword [esp + 0x70], ebp
mov esi, ebx
add ebx, 0xd116ebf
adc ebp, 0x44
mov dword [esp + 0x6c], ebp
shr ebp, 1
mov eax, 0xa3d70a3e
mul ebp
shr edx, 5
mov dword [esp + 0x64], edx
mov ebp, ebx
shr ebx, 1
mov eax, 0xa3d70a3e
mul ebx
shr edx, 5
mov dword [esp + 0x60], edx
imul ebx, edx, 0x64
sub ebp, ebx
mov ebx, dword [esp + 0x64]
imul eax, ebx, 0x64
mov edi, dword [esp + 0x6c]
sub edi, eax
mov eax, 0x28f5c28
mul edi
mov dword [esp + 0x64], edx
lea edi, [edi + edi*2]
shl edi, 5
add ebp, edi
shr ebp, 1
mov edi, eax
mov eax, 0xa3d70a3e
mul ebp
shr edx, 5
mov ebp, dword [esp + 0x60]
add ebp, 0
adc ebx, 0
add edi, ebp
mov ebp, dword [esp + 0x64]
adc ebp, ebx
add edx, edi
adc ebp, 0
mov eax, 0x64
mov ebx, edx
mul edx
imul edi, ebp, 0x64
add edx, edi
mov dword [esp + 0x64], edx
mov edi, eax
mov eax, 0x8eac
mul ebx
imul ebx, ebp, 0x8eac
add edx, ebx
mov dword [esp + 0x60], edx
sub esi, edi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x64]
sbb ebx, ebp
mov dword [esp + 0x70], ebx
add esi, 0xd116ebf
adc ebx, 0x44
mov dword [esp + 0x6c], ebx
shr ebx, 2
shr esi, 2
mov edi, dword [esp + 0x6c]
shl edi, 0x1e
or edi, esi
mov dword [esp + 0x64], edi
mov esi, ebx
shl ebx, 2
shl edi, 2
mov ebp, dword [esp + 0x64]
shr ebp, 0x1e
or ebp, ebx
mov dword [esp + 0x58], ebp
mov ebx, eax
mov eax, 0x5b5
mov ebp, dword [esp + 0x64]
mul ebp
mov dword [esp + 0x64], eax
imul ebp, esi, 0x5b5
add edx, ebp
mov dword [esp + 0x54], edx
mov ebp, dword [esp + 0x48]
add ebp, ebx
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
adc ebx, esi
mov esi, dword [esp + 0x5c]
sub esi, edi
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
sbb edi, edx
add esi, 0xd116ebf
adc edi, 0x44
mov eax, 0x16d
mul esi
imul esi, edi, 0x16d
add edx, esi
mov esi, dword [esp + 0x64]
add esi, ebp
mov ebp, dword [esp + 0x54]
adc ebp, ebx
add eax, esi
adc edx, ebp
mov ebx, dword [esp + 0x38]
cmp ebx, 0xd
jae 0x496acf
lea ebp, [0x13cfce0]
mov ebp, dword [ebp + ebx*4]
mov esi, ebp
sar ebp, 0x1f
add esi, eax
adc edx, ebp
mov ebp, dword [esp + 0x44]
test ebp, 3
jne 0x4968c2
mov dword [esp + 0x50], edx
mov edi, ebp
sar ebp, 0x1f
mov eax, 0x51eb851f
imul edi
mov eax, edx
sar edx, 5
sub edx, ebp
imul edx, edx, 0x64
cmp edi, edx
jne 0x4968a4
sar eax, 7
sub eax, ebp
imul edx, eax, 0x190
cmp edi, edx
jne 0x4968be
lea edx, [ebx + 1]
cmp edx, 3
jl 0x4968b8
add esi, 1
mov edx, dword [esp + 0x50]
adc edx, 0
jmp 0x4968c2
mov edx, dword [esp + 0x50]
jmp 0x4968c2
mov edx, dword [esp + 0x50]
mov dword [esp], ecx
mov ebx, dword [esp + 0x40]
lea eax, [ebx - 1]
mov ebx, eax
sar ebx, 0x1f
mov ebp, dword [esp + 0x3c]
imul ebp, ebp, 0xe10
mov edi, dword [esp + 0x74]
imul edi, edi, 0x3c
add ebp, edi
mov edi, dword [esp + 0x78]
add ebp, edi
mov edi, ebp
sar ebp, 0x1f
add eax, esi
adc ebx, edx
mov edx, 0x15180
mul edx
imul ebx, ebx, 0x15180
add edx, ebx
add edi, eax
mov dword [esp + 0x4c], edi
adc edx, ebp
mov dword [esp + 0x70], edx
add edi, 0xe5263700
mov dword [esp + 0x30], edi
mov dword [esp + 4], edi
adc edx, 0x80000001
mov dword [esp + 0x34], edx
mov dword [esp + 8], edx
call fcn.004974d0
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4969d4
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, ecx
sar ecx, 0x1f
mov eax, edx
mov edx, dword [esp + 0x4c]
mov esi, edx
sub edx, ebp
mov edi, ebp
mov ebp, dword [esp + 0x70]
sbb ebp, ecx
add edx, 0xe5263700
adc ebp, 0x80000001
cmp ebx, ebp
setg cl
sete bl
cmp edx, eax
setb al
and eax, ebx
or eax, ecx
test al, al
jne 0x496998
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
setl bl
sete al
cmp edx, ecx
setae cl
and ecx, eax
or ecx, ebx
test cl, cl
je 0x4969b9
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.004974d0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
mov edi, ecx
mov ecx, edi
sar edi, 0x1f
sub esi, ecx
mov edx, dword [esp + 0x70]
sbb edx, edi
add esi, 0xe5263700
adc edx, 0x80000001
jmp 0x4969dc
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x7c]
mov ebx, ecx
sar ecx, 0x1f
mov dword [esp + 0x70], ecx
lea edi, [esp + 0x80]
xor eax, eax
call fcn.0046f20b
mov dword [esp + 0x80], ebx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x84], ecx
add esi, 0x7791f700
mov dword [esp + 0x88], esi
adc edx, 0xe
mov dword [esp + 0x8c], edx
mov ecx, dword [0x144dc34]
mov dword [esp + 0x90], ecx
lea edi, [esp + 0x94]
lea esi, [esp + 0x80]
call fcn.0046f6ee
nop
mov ecx, dword [esp + 0xc8]
lea edx, [0x145ece0]
cmp ecx, edx
jne 0x496a54
xor ecx, ecx
mov eax, dword [esp + 0x98]
nop
test eax, 0x80000000
je 0x496aae
mov edx, dword [esp + 0x94]
shl eax, 1
mov ebx, edx
shl edx, 1
shr ebx, 0x1f
or ebx, eax
mov eax, ebx
shl ebx, 1
shr eax, 0x1f
shr edx, 0x1f
or ebx, edx
add ebx, 0xd7b17f80
mov dword [esp + 0x9c], ebx
adc eax, 0xd
mov dword [esp + 0xa0], eax
and dword [esp + 0x94], 0x3fffffff
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], ecx
lea edi, [esp + 0xcc]
lea esi, [esp + 0x94]
call fcn.0046f6ee
add esp, 0xa8
ret
mov eax, ebx
mov ecx, 0xd
call fcn.0046eff0
lea eax, [0xc68880]
mov dword [esp], eax
lea eax, [0xee9928]
mov dword [esp + 4], eax
call fcn.0043b1a0
nop
call fcn.0046db70
jmp fcn.00496400