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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x398
mov eax, dword [ebp + 8]
mov esi, ecx
lea ecx, [esp + 0x11c]
mov dword [ecx], edx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
push 0x30
pop edx
call fcn.004900a7
test eax, eax
je 0x494cff
lea ecx, [esp + 0xa8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.004917d0
push 0xf
pop ebx
mov edi, 0x53fa46
test al, 1
jne 0x494dcc
test dl, dl
je 0x494d0c
push 0x13
pop ebx
mov edi, 0x53fa81
jmp 0x494dcc
push 0xf
pop ebx
mov edi, 0x53fa46
jmp 0x494dcc
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x68]
lea edx, [esp + 0xa8]
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc6
lea esi, [esp + 0x68]
lea edx, [esp + 0xa8]
mov dword [esp + 0x54], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc4
lea esi, [esp + 0x68]
mov dword [esp + 0xa4], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0x50], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc4
lea esi, [esp + 0x68]
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0xc], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc4
lea esi, [esp + 0x68]
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0x34], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
je 0x494ddd
mov edi, ecx
mov ebx, eax
mov esi, dword [esp + 0x2c]
mov dword [esi], edi
mov dword [esi + 4], ebx
and dword [esi + 8], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea esi, [esp + 0x68]
mov dword [esp + 8], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 4], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
je 0x494e08
mov edi, eax
mov ebx, ecx
jmp 0x494dc8
lea esi, [esp + 0x68]
mov dword [esp + 0x48], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0x10], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc4
lea esi, [esp + 0x68]
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0x28], eax
mov ecx, esi
call fcn.00491925
cmp dword [esi], 0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
jne 0x494dc4
mov edx, dword [esp + 0x14]
lea esi, [esp + 0x68]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], eax
mov ecx, esi
push dword [esp + 0x34]
call fcn.00491950
pop eax
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x34], eax
je 0x494f3a
lea esi, [esp + 0x68]
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov ecx, esi
push dword [esp + 4]
call fcn.00491950
pop eax
mov esi, dword [esi + 4]
test esi, esi
je 0x494f2d
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x68]
cmp dword [esp + 0x14], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x18], eax
je 0x494f43
jbe 0x494f5d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
jmp 0x494f88
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
call fcn.00491622
mov esi, dword [esp + 0x2c]
jmp 0x494d02
mov edx, dword [esp + 0x14]
mov ecx, esi
push edx
push dword [esp + 0x38]
call fcn.004919cc
pop ecx
pop edx
test al, al
jne 0x494ed0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], esi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ecx
lea esi, [esp + 0x68]
mov edx, edi
mov ecx, esi
push 0
push 0x10001
push 0x1000
push 0x800
push dword [esp + 0x60]
push dword [esp + 0xb8]
push dword [esp + 0x6c]
call fcn.004919e2
add esp, 0x1c
mov eax, dword [esi]
mov esi, dword [esi + 0x10]
test esi, esi
mov dword [esp + 4], eax
je 0x4951db
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
movsd xmm1, qword [esp + 0x7c]
lea ebx, [esp + 0x130]
mov eax, dword [esp + 0x74]
mov dword [esp + 4], 0x53fa20
mov dword [ebx + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
movsd qword [ebx + 0x14], xmm0
movsd qword [ebx + 0xc], xmm1
mov dword [ebx - 8], edx
mov edx, dword [esp + 0x70]
mov dword [ebx - 4], ecx
mov dword [ebx + 4], eax
mov dword [ebx], edx
mov dword [ebx + 8], esi
mov eax, dword [ebx + 0x18]
mov ecx, eax
shr eax, 1
and ecx, 1
add eax, ecx
cmp dword [esp + 8], eax
mov al, 1
mov dword [esp + 0x10], eax
push 0x16
pop ebx
jne 0x4951ea
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x20]
jne 0x4951ea
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
push eax
push esi
call fcn.00491c96
pop ecx
pop ecx
test eax, eax
mov dword [esp + 0x48], eax
mov al, 1
mov dword [esp + 0x40], edx
mov dword [esp + 8], eax
je 0x49531c
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
call fcn.00491638
mov ecx, dword [esp + 0x140]
mov ebx, edx
mov edx, eax
lea eax, [esp + 0x130]
push eax
push ebx
call fcn.00496083
pop ecx
pop ecx
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
push dword [esp + 0x24]
push esi
call fcn.00491c96
pop ecx
pop ecx
test eax, eax
je 0x4951f5
mov ecx, dword [esp + 0x9c]
mov ebx, edx
mov edx, eax
lea eax, [esp + 0x130]
push eax
push ebx
call fcn.00496083
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
call fcn.00491cec
test al, al
je 0x495216
mov edx, dword [esp + 0x4c]
lea ebx, [esp + 0x68]
mov ecx, ebx
push dword [esp + 0xc]
call fcn.00491950
pop eax
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x4c], eax
je 0x495227
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
mov byte [esp + 0xc], 1
mov dword [esp + 4], 0x53fa20
cmp ecx, dword [esp + 0x74]
mov dword [esp + 0xb8], eax
push 0x16
pop ebx
jae 0x495258
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
push dword [esp + 0x24]
push esi
call fcn.00491cfc
pop ecx
pop edx
test al, al
mov al, 1
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], eax
mov al, 1
mov dword [esp + 8], eax
jne 0x4952d2
push dword [esp + 0x20]
push dword [esp + 0x50]
call fcn.004facb0
pop ecx
pop edx
cmp eax, 0xffffffff
je 0x495248
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0x68]
mov dword [ecx], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
call fcn.0049149e
cmp edx, 0x100
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
jbe 0x495266
push 8
pop ebx
mov dword [esp + 4], 0x53fa79
jmp 0x4952b2
mov ebx, dword [esp + 0x6c]
mov al, 1
mov dword [esp + 8], eax
jmp 0x49532f
mov al, 1
mov dword [esp + 8], eax
jmp 0x49531c
mov byte [esp + 0xc], 1
mov dword [esp + 4], 0x53fa20
push 0x16
pop ebx
mov al, 1
mov dword [esp + 0x10], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x4952f5
mov byte [esp + 0xc], 1
mov dword [esp + 4], 0x53fa20
push 0x16
jmp 0x495236
mov byte [esp + 0xc], 1
mov dword [esp + 4], 0x53fa46
push 0xf
pop ebx
mov al, 1
mov dword [esp + 0x10], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x4952e2
mov byte [esp + 0xc], 1
mov dword [esp + 4], 0x53fa36
push 0x10
pop ebx
mov al, 1
mov dword [esp + 0x10], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x4952d2
push 0xf
pop ebx
cmp dword [esp + 0xc], 4
mov dword [esp + 4], 0x53fac7
jb 0x4952b2
push dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.004facb0
pop ecx
pop edx
test eax, eax
je 0x495298
push 0x10
pop ebx
mov dword [esp + 4], 0x53fa36
jmp 0x4952b2
push dword [esp + 0xc]
push 3
push dword [esp + 0x18]
call fcn.004fae20
add esp, 0xc
test eax, eax
je 0x495360
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
call fcn.004918fe
mov al, 1
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x4c]
call fcn.00491622
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
call fcn.004918fe
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xc4]
call fcn.004918fe
cmp byte [esp + 0xc], 0
je 0x49531c
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
call fcn.004918fe
lea ecx, [esp + 0x130]
call fcn.0049190a
cmp byte [esp + 0x10], 0
je 0x49533c
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
call fcn.00491622
cmp byte [esp + 8], 0
je 0x495353
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x60]
call fcn.00491622
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 4]
jmp 0x494dcc
mov esi, dword [esp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004fc0c0
pop ecx
pop ecx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x38], edx
mov ecx, esi
mov dword [esp + 0x24], eax
mov edx, ebx
call fcn.00491d21
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0xb4], eax
lea esi, [eax - 1]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x68], ecx
mov ecx, ebx
call fcn.00491dc1
mov ecx, esi
shr esi, 5
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], edx
cmp esi, edx
jae 0x49583b
mov ebx, dword [esp + 0xb4]
lea eax, [ebx + 0x1f]
and eax, 0xffffffe0
xor edx, edx
inc edx
sub ebx, eax
mov dword [esp + 0x20], eax
shl edx, cl
mov ecx, dword [esp + 0x18]
add ebx, 0xfffffffd
mov dword [ecx + esi*4], edx
mov esi, dword [esp + 0x70]
test ebx, ebx
je 0x495403
push dword [esp + 0xc]
push esi
mov eax, dword [esp + 0x20]
push eax
push eax
call fcn.004faf50
add esp, 0x10
inc ebx
jmp 0x4953e9
cmp dword [esp + 0x20], 0
je 0x495fca
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
shr esi, 1
call fcn.00491638
mov dword [esp + 0x20], esi
bsr ecx, esi
xor ebx, ebx
xor esi, esi
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], edx
inc esi
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
cmovne ebx, esi
cmovne esi, eax
cmp esi, 2
mov eax, ebx
sbb eax, 0
jb 0x495498
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
shrd esi, ebx, 1
shr ebx, 1
lea eax, [esp + 0x68]
push eax
call fcn.0049176c
pop ecx
test dword [esp + 0x20], esi
mov dword [esp + 8], eax
mov dword [esp + 4], edx
je 0x495445
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
lea eax, [esp + 0x68]
push eax
push dword [esp + 8]
call fcn.004917ad
pop ecx
pop ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
jmp 0x495445
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
call fcn.004918fe
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
test word [esp + 0xb4], 0x1ff
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
je 0x4954fa
push 0x25
pop ebx
mov dword [esp + 4], 0x53faa2
lea ecx, [esp + 0x68]
call fcn.0049190a
jmp 0x4952bf
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
push dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.00494b84
pop ecx
pop ecx
mov dword [esp + 0xc], edx
push 0x16
pop ebx
test eax, eax
mov dword [esp + 4], 0x53fa20
je 0x4954ec
mov esi, eax
push dword [esp + 0xc]
push eax
call fcn.004facb0
pop ecx
pop edx
test eax, eax
je 0x495543
mov edx, dword [esp + 0xc]
mov ecx, esi
call fcn.004918fe
jmp 0x4954ec
lea ecx, [esp + 0x74]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x24]
movsd qword [esp + 0xe4], xmm0
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx - 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [ecx - 8], eax
mov eax, dword [esp + 0x14]
mov dword [ecx - 4], eax
lea ecx, [esp + 0x68]
call fcn.0049149e
cmp edx, 0x100
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
jbe 0x4955cc
push 8
pop ebx
mov dword [esp + 4], 0x53fa79
jmp 0x495614
push 0xf
pop ebx
cmp dword [esp + 0xc], 4
mov dword [esp + 4], 0x53fac7
jb 0x495614
push dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.004facb0
pop ecx
pop edx
test eax, eax
je 0x4955fe
push 0x10
pop ebx
mov dword [esp + 4], 0x53fa36
jmp 0x495614
push dword [esp + 0xc]
push 3
push dword [esp + 0x18]
call fcn.004fae20
add esp, 0xc
test eax, eax
je 0x49563f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
call fcn.004918fe
mov byte [esp + 0xc], 1
lea ecx, [esp + 0xd8]
call fcn.004918e9
mov dword [esp + 0x10], 0
jmp 0x4952ca
mov esi, dword [esp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004fc0c0
pop ecx
pop ecx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov ecx, esi
mov dword [esp + 0x18], eax
mov edx, ebx
call fcn.00491d21
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x38], eax
lea esi, [eax - 1]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, ebx
call fcn.00491dc1
mov ecx, esi
shr esi, 5
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
cmp esi, edx
jae 0x495e70
mov ebx, dword [esp + 0x38]
lea eax, [ebx + 0x1f]
and eax, 0xffffffe0
xor edx, edx
inc edx
sub ebx, eax
mov dword [esp + 0x1c], eax
shl edx, cl
mov ecx, dword [esp + 0x28]
add ebx, 0xfffffffd
mov dword [ecx + esi*4], edx
mov esi, dword [esp + 0x70]
test ebx, ebx
je 0x4956dc
push dword [esp + 0xc]
push esi
mov eax, dword [esp + 0x30]
push eax
push eax
call fcn.004faf50
add esp, 0x10
inc ebx
jmp 0x4956c2
cmp dword [esp + 0x1c], 0
je 0x495fca
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
shr esi, 1
call fcn.00491638
mov dword [esp + 4], eax
mov dword [esp + 0x14], edx
bsr ecx, esi
xor eax, eax
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x1c], esi
inc edx
shld ebx, edx, cl
shl edx, cl
test cl, 0x20
cmovne ebx, edx
cmovne edx, eax
mov dword [esp + 8], edx
cmp dword [esp + 8], 2
mov eax, ebx
sbb eax, 0
jb 0x49577f
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x68]
shrd esi, ebx, 1
shr ebx, 1
push eax
call fcn.0049176c
pop ecx
test dword [esp + 0x1c], esi
mov dword [esp + 4], eax
mov dword [esp + 0x14], edx
mov dword [esp + 8], esi
je 0x495722
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x18]
call fcn.004917ad
pop ecx
pop ecx
mov dword [esp + 4], eax
mov dword [esp + 0x14], edx
jmp 0x495722
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
call fcn.004918fe
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
test word [esp + 0x38], 0x1ff
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
je 0x4957d2
push 0x25
pop ebx
mov dword [esp + 4], 0x53faa2
jmp 0x49582d
mov ecx, dword [esp + 0xc]
call fcn.00491dc1
mov ebx, edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov esi, eax
push ebx
push eax
call fcn.0048f852
pop ecx
pop edx
test al, al
jne 0x495819
mov ecx, esi
mov edx, ebx
push dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.0048f917
pop ecx
pop edx
cmp eax, 0xffffffff
jne 0x495819
push ebx
push esi
call fcn.004facb0
pop ecx
pop edx
test eax, eax
je 0x49584e
mov ecx, esi
mov edx, ebx
call fcn.004918fe
push 0x16
pop ebx
mov dword [esp + 4], 0x53fa20
lea ecx, [esp + 0x68]
call fcn.0049190a
jmp 0x495621
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0x53de10
call fcn.0050aeb0
pop eax
ud2
lea ecx, [esp + 0x74]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x18]
movsd qword [esp + 0x108], xmm0
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x104], eax
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], ebx
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x108]
mov dword [esp + 0xc8], eax
cmp edx, eax
mov dword [esp + 0x150], edx
jne 0x495ffa
mov ecx, dword [esp + 0x10]
call fcn.00491638
cmp dword [esp + 0x30], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
je 0x495904
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.00494b84
pop ecx
pop ecx
test eax, eax
mov dword [esp + 4], edx
je 0x495aa8
mov esi, eax
jmp 0x4959ca
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
call fcn.00491638
lea ebx, [esp + 0xd8]
mov esi, edx
mov edx, eax
mov ecx, dword [ebx + 0x10]
push ebx
push esi
call fcn.00496083
pop ecx
pop ecx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
call fcn.00491de3
mov ecx, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 0x1c], edx
call fcn.00491de3
mov esi, eax
mov dword [esp + 8], edx
push dword [ebx + 0xc]
push dword [ebx + 8]
push eax
mov eax, dword [esp + 0x10]
push eax
push eax
call fcn.004fab90
add esp, 0x14
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.004918fe
mov ecx, dword [ebx + 0xc]
call fcn.00491dc1
mov ecx, eax
push dword [ebx + 0xc]
push dword [ebx + 8]
mov esi, dword [esp + 0xc]
push esi
call fcn.00491e04
add esp, 0xc
mov ebx, edx
mov edx, dword [esp + 0x1c]
mov ecx, esi
mov dword [esp + 8], eax
call fcn.004918fe
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xd8]
push eax
push ebx
push dword [esp + 0x10]
call fcn.00491e27
add esp, 0xc
mov ecx, dword [esp + 8]
mov dword [esp + 4], edx
mov edx, ebx
mov esi, eax
call fcn.004918fe
lea ebx, [esp + 0xd8]
mov edx, esi
mov ecx, dword [ebx + 0x10]
push ebx
push dword [esp + 8]
call fcn.00496083
pop ecx
pop ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov ecx, eax
push ebx
push dword [esp + 0x10]
call fcn.00496083
pop ecx
pop ecx
mov esi, eax
mov ebx, edx
push edx
push 1
push eax
call fcn.004fad70
add esp, 0xc
mov ecx, esi
mov edx, ebx
mov dword [esp + 0xc], eax
call fcn.004918fe
cmp dword [esp + 0xc], 0xffffffff
setne byte [esp + 0xc]
je 0x495a46
push 0x16
pop eax
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x53fa20
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
call fcn.004918fe
jmp 0x495ac9
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x130]
push eax
push dword [esp + 0x44]
call fcn.00496083
pop ecx
pop ecx
mov esi, edx
lea ebx, [esp + 0x68]
mov dword [esp + 0x5c], eax
mov edx, eax
mov ecx, ebx
mov dword [esp + 0x58], esi
push esi
call fcn.00491548
pop eax
mov ecx, ebx
call fcn.0049149e
cmp edx, 0x100
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edx
jbe 0x495ae6
push 8
pop eax
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x53fa79
jmp 0x495b3a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
call fcn.004918fe
mov byte [esp + 0xc], 1
mov dword [esp + 8], 0x53fa36
push 0x10
pop eax
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xfc]
call fcn.004918e9
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], eax
jmp 0x495626
push 0xf
pop eax
cmp dword [esp + 0x30], 4
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x53fac7
jb 0x495b3a
push dword [esp + 0x30]
push dword [esp + 0x20]
call fcn.004facb0
pop ecx
pop edx
test eax, eax
je 0x495b20
push 0x10
pop eax
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x53fa36
jmp 0x495b3a
push dword [esp + 0x30]
push 3
push dword [esp + 0x24]
call fcn.004fae20
add esp, 0xc
test eax, eax
je 0x495e7b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
call fcn.004918fe
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
call fcn.004918fe
cmp dword [esp + 0x1c], 0
je 0x495a34
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xa4]
lea eax, [esp + 0x160]
lea esi, [esp + 0x68]
lea ebx, [esp + 0x170]
mov dword [eax], edi
and dword [esi], 0
mov dword [ebx], eax
mov dword [eax + 4], ecx
lea ecx, [esp + 0x168]
mov dword [ecx], edx
mov edx, dword [esp + 0x50]
mov dword [ebx + 4], ecx
mov dword [ecx + 4], edx
mov ecx, esi
mov edx, 0x53e4e4
push ebx
call fcn.00492197
pop eax
mov edi, dword [esi]
xor edx, edx
mov ecx, edi
call fcn.004915a5
lea esi, [esp + 0x150]
mov dword [esi + 4], eax
mov dword [esi + 8], edx
and dword [esi + 0xc], 0
mov dword [esi], edi
mov ecx, esi
mov edx, 0x53e4f8
push ebx
call fcn.00492197
pop eax
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm0
mov eax, dword [esp + 0xd4]
cmp dword [esp + 0xc8], eax
mov dword [esp + 0xf8], eax
jne 0x496020
movsd xmm0, qword [esp + 0xcc]
mov eax, dword [esp + 0xd4]
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x70], eax
mov dword [esp + 0x50], eax
cmp dword [esp + 0x68], eax
jbe 0x495c4b
mov edx, dword [esp + 0x50]
lea esi, [esp + 0x68]
mov ecx, esi
call fcn.004913c4
mov eax, dword [esi + 8]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x68]
movsd xmm2, qword [esp + 0x114]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], ecx
lea ecx, [esp + 0xe4]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 0x10]
movsd qword [eax + 8], xmm1
movsd xmm1, qword [esp + 0x10c]
mov dword [eax + 0x10], ecx
movsd qword [eax], xmm0
mov ecx, dword [esp + 0xe0]
movsd qword [eax + 0x2c], xmm2
movsd xmm2, qword [esp + 0xfc]
movsd qword [eax + 0x24], xmm1
movsd xmm1, qword [esp + 0x104]
mov dword [esp + 0x54], ecx
movsd qword [eax + 0x14], xmm2
movsd qword [eax + 0x1c], xmm1
push 0xa
pop ecx
lea edi, [esp + 0x178]
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
push 0xd
pop ecx
lea edi, [esp + 0x1a4]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x4c]
call fcn.00491622
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
call fcn.004918fe
cmp dword [esp + 0x54], 0
je 0x495353
lea eax, [esp + 0x27c]
push 0xd
pop ecx
lea esi, [esp + 0x1a4]
mov edi, eax
lea edx, [esp + 0x2d8]
rep movsd dword es:[edi], dword [esi]
push 0xa
pop ecx
lea esi, [esp + 0x178]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
mov dword [edx - 0x68], ecx
mov dword [edx - 0x64], ebx
mov dword [edx - 0x60], esi
mov esi, dword [esp + 0x10]
mov dword [edx - 0x28], edi
mov edi, dword [esp + 8]
mov dword [edx - 0x24], esi
mov esi, dword [esp + 0x14]
mov dword [edx - 0x20], edi
mov edi, dword [esp + 0x1c]
mov dword [edx - 0x1c], esi
mov esi, dword [esp + 0x30]
mov dword [edx - 0x18], edi
mov edi, dword [esp + 0x18]
mov dword [edx - 0x14], esi
mov esi, dword [esp + 0x20]
mov dword [edx - 0x10], edi
mov edi, dword [esp + 0x9c]
mov dword [edx - 0xc], esi
mov esi, dword [esp + 0xc4]
mov dword [edx - 8], edi
mov edi, dword [esp + 0xa4]
mov dword [edx - 4], esi
mov esi, dword [esp + 0x50]
mov dword [edx + 0x28], edi
mov dword [edx + 0x2c], esi
mov edx, dword [esp + 0xb0]
cmp edx, dword [esp + 0xac]
jne 0x495e31
mov ecx, 0x8c
lea edi, [esp + 0x308]
push ecx
push eax
push edi
call fcn.004fea40
add esp, 0xc
mov eax, 0x8c
lea esi, [esp + 0x1e4]
push eax
push edi
push esi
call fcn.004fea40
add esp, 0xc
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x120]
mov dword [esi - 0xc], eax
mov dword [esi - 8], ebx
mov dword [esi - 4], edx
jne 0x495e4a
lea eax, [esp + 0x1d8]
push 0x98
push eax
push dword [esp + 0x34]
call fcn.004fea40
add esp, 0xc
jmp 0x494dd5
lea ecx, [esp + 0x270]
call fcn.0049188f
push 0xf
pop ebx
mov edi, 0x53fa46
jmp 0x494dc8
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x1d8]
mov dword [eax], 0x53fa46
mov dword [eax + 4], 0xf
and dword [eax + 8], 0
call fcn.0049188f
jmp 0x494dd5
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x495841
mov ebx, dword [esp + 0x1c]
push dword [ebx + 4]
push dword [ebx]
call fcn.004fc0c0
pop ecx
pop ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x30]
mov ecx, ebx
mov dword [esp + 8], eax
call fcn.00491d21
mov esi, eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], ebx
xor edx, edx
inc edx
lea ebx, [esi - 1]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
call fcn.004914e9
lea ecx, [esp + 0xc8]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.0049149e
mov ecx, ebx
shr ebx, 5
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], edx
cmp ebx, edx
jae 0x495ff3
xor edx, edx
lea eax, [esi + 0x1f]
inc edx
and eax, 0xffffffe0
shl edx, cl
mov ecx, dword [esp + 0x24]
sub esi, eax
add esi, 0xfffffffd
mov dword [ecx + ebx*4], edx
mov ebx, eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x64], ecx
test esi, esi
je 0x495f32
push dword [esp + 0x30]
push dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
push eax
push eax
call fcn.004faf50
add esp, 0x10
inc esi
jmp 0x495f15
test ebx, ebx
je 0x495fca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
shr ebx, 1
call fcn.00491638
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
bsr ecx, ebx
xor eax, eax
xor esi, esi
xor edx, edx
mov dword [esp + 0x38], ebx
inc edx
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, eax
mov dword [esp + 4], edx
cmp dword [esp + 4], 2
mov eax, esi
sbb eax, 0
jb 0x495fe1
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x68]
shrd ebx, esi, 1
shr esi, 1
push eax
push dword [esp + 0x68]
call fcn.0049167b
pop eax
pop ecx
test dword [esp + 0x38], ebx
mov dword [esp + 4], ebx
je 0x495f71
push dword [esp + 0x20]
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x6c]
push dword [esp + 0x30]
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.004ec9c0
add esp, 0x18
jmp 0x495f71
push 0x1f
pop edx
mov ecx, str.assertion_failed:_exponent___1
push 0x53de40
call fcn.0050af40
jmp 0x49584b
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
call fcn.004918fe
jmp 0x495b4f
mov ecx, ebx
jmp 0x49583d
and dword [esp + 0x70], 0
lea ecx, [esp + 0x150]
lea edx, [esp + 0xc8]
push 0x53dd74
lea eax, [esp + 0x6c]
push eax
call fcn.0050cb5d
pop eax
pop ecx
ud2
and dword [esp + 0x70], 0
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xf8]
push 0x53e4d4
jmp 0x496012