Function at 0x497d41
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 + 0x168]
mov dword [ecx], edx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
push 0x30
pop edx
call fcn.004934ef
test eax, eax
je 0x497da4
lea ecx, [esp + 0x5c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.00494b3c
mov ebx, 0x55102e
push 0xf
pop edi
test al, 1
jne 0x497ec0
test dl, dl
je 0x497db1
mov ebx, 0x551069
push 0x13
pop edi
jmp 0x497ec0
push 0xf
pop edi
mov ebx, 0x55102e
jmp 0x497ec0
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0x28], esi
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov esi, dword [edi + 4]
mov edi, dword [edi + 8]
je 0x497dd9
mov ebx, esi
jmp 0x497ebc
mov dword [esp + 4], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
jne 0x497eba
mov dword [esp + 8], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
jne 0x497eba
mov dword [esp + 0x4c], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0xc], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
jne 0x497eba
mov dword [esp + 0x18], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0x30], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
jne 0x497eba
mov dword [esp + 0x10], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
jne 0x497eba
mov dword [esp + 0x14], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0x48], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
je 0x497ed1
mov ebx, eax
mov esi, dword [esp + 0x28]
mov dword [esi], ebx
mov dword [esi + 4], edi
and dword [esi + 8], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x24], edi
lea edi, [esp + 0x80]
lea edx, [esp + 0x5c]
mov dword [esp + 0x20], eax
mov ecx, edi
call fcn.00494bb8
cmp dword [edi], 0
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
je 0x497efc
mov edi, eax
mov ebx, ecx
jmp 0x497ebc
mov dword [esp + 0x40], ecx
mov dword [esp + 0x58], eax
call fcn.004945f8
mov edx, dword [esp + 0x30]
lea edi, [esp + 0x80]
mov ecx, edi
push dword [esp + 0x18]
call fcn.00494c93
pop eax
mov eax, dword [edi + 4]
test eax, eax
mov dword [esp + 0x30], eax
je 0x497ff5
lea edi, [esp + 0x80]
mov edx, dword [edi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], eax
mov ecx, edi
push dword [esp + 0x10]
call fcn.00494c93
pop eax
mov edi, dword [edi + 4]
test edi, edi
je 0x497fe8
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], eax
je 0x498000
jbe 0x49801a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
jmp 0x498042
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
call fcn.0048ab64
mov esi, dword [esp + 0x28]
push 0xf
jmp 0x497d9e
mov edx, dword [esp + 0x18]
mov ecx, edi
push edx
push dword [esp + 0x34]
call fcn.00494d0f
pop ecx
pop edx
test al, al
jne 0x497f8e
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x80]
mov edx, esi
mov ecx, edi
push 0
push 0x10001
push 0x1000
push 0x800
push dword [esp + 0x18]
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.00494d25
add esp, 0x1c
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, eax
or edx, ecx
je 0x4982b9
movsd xmm1, qword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0xa0]
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
mov ebx, 0x551008
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [esp + 0x138], xmm0
movsd qword [esp + 0x148], xmm2
movsd qword [esp + 0x150], xmm1
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], esi
mov eax, dword [esp + 0x150]
mov ecx, eax
shr eax, 1
and ecx, 1
add eax, ecx
cmp dword [esp + 0x2c], eax
mov al, 1
mov dword [esp + 8], eax
push 0x16
pop eax
mov dword [esp + 4], eax
jne 0x4982d5
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x1c]
jne 0x4982d5
mov edi, dword [esp + 0x144]
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
push edi
mov dword [esp + 0x18], eax
push eax
call fcn.004951b1
pop ecx
pop ecx
test eax, eax
mov dword [esp + 0x2c], eax
mov al, 1
mov dword [esp + 0x48], edx
mov dword [esp], eax
je 0x4983f1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
lea ebx, [esp + 0x138]
call fcn.0049495e
mov ecx, dword [ebx + 0x10]
mov esi, edx
mov edx, eax
push ebx
push esi
call fcn.0049573a
pop ecx
pop ecx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
push edi
push dword [esp + 0x18]
call fcn.004951b1
pop ecx
pop ecx
test eax, eax
je 0x4982df
mov ecx, dword [esp + 0x34]
mov esi, edx
mov edx, eax
lea eax, [esp + 0x138]
push eax
push esi
call fcn.0049573a
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
call fcn.00495207
test al, al
je 0x498300
mov edx, dword [esp + 0xc]
lea esi, [esp + 0x80]
mov ecx, esi
push dword [esp + 0x4c]
call fcn.00494c93
pop eax
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x4c], eax
je 0x49830e
mov eax, dword [esp + 0x80]
mov ebx, 0x551008
mov byte [esp + 0xc], 1
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x8c]
push 0x16
pop eax
mov dword [esp + 4], eax
jae 0x498340
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
mov edx, esi
push edi
push dword [esp + 0x18]
call fcn.00495217
pop ecx
pop edx
test al, al
mov al, 1
mov byte [esp + 0xc], 1
mov dword [esp + 8], eax
mov al, 1
mov dword [esp], eax
jne 0x4983b6
push esi
push dword [esp + 0x50]
call fcn.004fd72f
pop ecx
pop edx
cmp eax, 0xffffffff
je 0x49832f
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x108]
mov dword [ecx], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], eax
call fcn.0049523c
cmp edx, 0x100
mov dword [esp + 8], eax
mov dword [esp], edx
jbe 0x49834d
push 8
pop eax
mov ebx, 0x551061
mov dword [esp + 4], eax
jmp 0x498398
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 4], eax
mov al, 1
mov dword [esp], eax
jmp 0x498404
mov al, 1
mov dword [esp], eax
jmp 0x4983f1
mov ebx, 0x551008
mov byte [esp + 0xc], 1
push 0x16
pop eax
mov dword [esp + 4], eax
mov al, 1
mov dword [esp + 8], eax
mov al, 1
mov dword [esp], eax
jmp 0x4983d0
mov ebx, 0x551008
mov byte [esp + 0xc], 1
push 0x16
jmp 0x49831a
mov ebx, 0x55102e
mov byte [esp + 0xc], 1
push 0xf
pop eax
mov dword [esp + 4], eax
mov al, 1
mov dword [esp + 8], eax
mov al, 1
mov dword [esp], eax
jmp 0x4983c3
mov ebx, 0x55101e
mov byte [esp + 0xc], 1
push 0x10
pop eax
mov dword [esp + 4], eax
mov al, 1
mov dword [esp + 8], eax
mov al, 1
mov dword [esp], eax
jmp 0x4983b6
push 0xf
pop eax
cmp dword [esp], 4
mov ebx, 0x5510af
mov dword [esp + 4], eax
jb 0x498398
push dword [esp]
push dword [esp + 0xc]
call fcn.004fd72f
pop ecx
pop edx
test eax, eax
je 0x49837f
push 0x10
pop eax
mov dword [esp + 4], eax
mov ebx, 0x55101e
jmp 0x498398
push dword [esp]
push 3
push dword [esp + 0x10]
call fcn.004fd83b
add esp, 0xc
test eax, eax
je 0x498431
mov ecx, dword [esp + 8]
mov edx, dword [esp]
call fcn.00494c51
mov al, 1
mov byte [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp], 0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
call fcn.0048ab64
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
call fcn.00494c51
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
call fcn.00494c51
cmp byte [esp + 0xc], 0
je 0x4983f1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
call fcn.00494c51
lea ecx, [esp + 0x128]
call fcn.00494c5d
cmp byte [esp + 8], 0
je 0x498411
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
call fcn.0048ab64
cmp byte [esp], 0
je 0x498424
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
call fcn.0048ab64
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 4]
jmp 0x497ec0
mov esi, dword [esp + 8]
push dword [esi + 4]
push dword [esi]
call fcn.004fe88b
pop ecx
pop ecx
mov edi, dword [esp]
mov ebx, edx
mov ecx, esi
mov dword [esp + 0x14], eax
mov edx, edi
call fcn.0049525a
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x6c], eax
lea ebx, [eax - 1]
mov dword [esp + 0x80], ecx
mov ecx, edi
call fcn.0049536a
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x1c], edx
shr eax, 5
cmp eax, edx
jae 0x498948
xor edx, edx
mov edi, dword [esp + 0x6c]
mov ecx, ebx
inc edx
shl edx, cl
mov ecx, dword [esp + 0xc]
lea ebx, [edi + 0x1f]
and ebx, 0xffffffe0
mov dword [ecx + eax*4], edx
mov ecx, ebx
xor edx, edx
shr ecx, 1
mov dword [esp + 0x10], ecx
call fcn.004952fa
mov esi, dword [esp + 0x88]
sub edi, ebx
add edi, 0xfffffffd
test edi, edi
je 0x4984e6
push dword [esp]
push esi
mov eax, dword [esp + 0x14]
push eax
push eax
call fcn.004fd8f0
add esp, 0x10
inc edi
jmp 0x4984cd
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
call fcn.0049495e
cmp dword [esp + 0x10], 0
mov esi, eax
mov dword [esp + 4], edx
je 0x49850a
bsr eax, dword [esp + 0x10]
xor eax, 0x1f
jmp 0x49850d
push 0x20
pop eax
mov cl, 0x1f
xor edi, edi
sub cl, al
xor eax, eax
xor ebx, ebx
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
cmp ebx, 2
mov eax, edi
sbb eax, 0
jb 0x498577
mov edx, dword [esp + 4]
shrd ebx, edi, 1
shr edi, 1
lea eax, [esp + 0x80]
mov ecx, esi
push eax
call fcn.0049497d
pop ecx
test dword [esp + 0x10], ebx
mov esi, eax
mov dword [esp + 4], edx
je 0x498526
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x80]
mov edx, esi
push eax
push dword [esp + 8]
call fcn.00494ad1
pop ecx
pop ecx
mov esi, eax
mov dword [esp + 4], edx
jmp 0x498526
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
call fcn.00494c51
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 8]
test word [esp + 0x6c], 0x1ff
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ecx
je 0x4985e7
push 0x25
pop eax
mov dword [esp + 4], eax
mov ebx, 0x55108a
lea ecx, [esp + 0x80]
call fcn.00494c78
jmp 0x4983a4
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push dword [esp]
push dword [esp + 0xc]
call fcn.00495318
pop ecx
pop ecx
mov esi, eax
push 0x16
pop eax
mov ebx, 0x551008
test esi, esi
mov dword [esp + 4], eax
je 0x4985d6
mov edi, edx
push edx
push esi
call fcn.004fd72f
pop ecx
pop edx
test eax, eax
je 0x498629
mov ecx, esi
mov edx, edi
call fcn.00494c51
jmp 0x4985d6
lea ecx, [esp + 0x8c]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x15c]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x14]
movsd qword [esp + 0xf0], xmm0
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], edi
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
call fcn.0049523c
cmp edx, 0x100
mov dword [esp + 0xc], eax
mov dword [esp], edx
jbe 0x4986b3
push 8
pop eax
mov ebx, 0x551061
mov dword [esp + 4], eax
jmp 0x4986fa
push 0xf
pop eax
cmp dword [esp], 4
mov ebx, 0x5510af
mov dword [esp + 4], eax
jb 0x4986fa
push dword [esp]
push dword [esp + 0x10]
call fcn.004fd72f
pop ecx
pop edx
test eax, eax
je 0x4986e5
push 0x10
pop eax
mov dword [esp + 4], eax
mov ebx, 0x55101e
jmp 0x4986fa
push dword [esp]
push 3
push dword [esp + 0x14]
call fcn.004fd83b
add esp, 0xc
test eax, eax
je 0x498724
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
call fcn.00494c51
mov byte [esp + 0xc], 1
lea ecx, [esp + 0xe4]
call fcn.00494c3c
mov dword [esp + 8], 0
jmp 0x4983af
mov esi, dword [esp + 0xc]
push dword [esi + 4]
push dword [esi]
call fcn.004fe88b
pop ecx
pop ecx
mov edi, dword [esp]
mov ebx, edx
mov ecx, esi
mov dword [esp + 0x14], eax
mov edx, edi
call fcn.0049525a
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x24], eax
lea ebx, [eax - 1]
mov dword [esp + 0x80], ecx
mov ecx, edi
call fcn.0049536a
mov dword [esp + 0x18], eax
mov eax, ebx
mov dword [esp + 0x20], edx
shr eax, 5
cmp eax, edx
jae 0x498e42
xor edx, edx
mov edi, dword [esp + 0x24]
mov ecx, ebx
inc edx
shl edx, cl
mov ecx, dword [esp + 0x18]
lea ebx, [edi + 0x1f]
and ebx, 0xffffffe0
mov dword [ecx + eax*4], edx
mov ecx, ebx
xor edx, edx
shr ecx, 1
mov dword [esp + 0x10], ecx
call fcn.004952fa
mov esi, dword [esp + 0x88]
sub edi, ebx
add edi, 0xfffffffd
test edi, edi
je 0x4987d9
push dword [esp]
push esi
mov eax, dword [esp + 0x20]
push eax
push eax
call fcn.004fd8f0
add esp, 0x10
inc edi
jmp 0x4987c0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
call fcn.0049495e
cmp dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
je 0x4987ff
bsr eax, dword [esp + 0x10]
xor eax, 0x1f
jmp 0x498802
push 0x20
pop eax
mov cl, 0x1f
xor edi, edi
sub cl, al
xor eax, eax
xor esi, esi
inc esi
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, eax
cmp esi, 2
mov eax, edi
sbb eax, 0
jb 0x498878
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, esi
lea eax, [esp + 0x80]
shrd ebx, edi, 1
shr edi, 1
push eax
call fcn.0049497d
pop ecx
test dword [esp + 0x10], ebx
mov esi, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
je 0x49881b
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
lea eax, [esp + 0x80]
push eax
push dword [esp + 8]
call fcn.00494ad1
pop ecx
pop ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
jmp 0x49881b
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
call fcn.00494c51
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
test word [esp + 0x24], 0x1ff
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
je 0x4988dd
push 0x25
pop eax
mov dword [esp + 4], eax
mov ebx, 0x55108a
jmp 0x498937
mov ecx, dword [esp]
call fcn.0049536a
mov edi, edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, eax
push edi
push eax
call fcn.00492bd9
pop ecx
pop edx
test al, al
jne 0x498922
mov ecx, esi
mov edx, edi
push dword [esp]
push dword [esp + 0x10]
call fcn.00492c9e
pop ecx
pop edx
cmp eax, 0xffffffff
jne 0x498922
push edi
push esi
call fcn.004fd72f
pop ecx
pop edx
test eax, eax
je 0x49895b
mov ecx, esi
mov edx, edi
call fcn.00494c51
push 0x16
pop eax
mov ebx, 0x551008
mov dword [esp + 4], eax
lea ecx, [esp + 0x80]
call fcn.00494c78
jmp 0x498706
mov edx, dword [esp + 0x1c]
mov ecx, eax
push 0x54f478
call fcn.0050d500
pop eax
ud2
lea ecx, [esp + 0x8c]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x14]
movsd qword [esp + 0x114], xmm0
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], edi
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0x114]
mov dword [esp + 0x15c], eax
cmp edx, eax
mov dword [esp + 0x104], edx
jne 0x498fc7
mov ecx, dword [esp + 0xc]
call fcn.0049495e
cmp dword [esp + 0x40], 0
mov dword [esp + 4], eax
mov dword [esp], edx
je 0x498a11
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
push dword [esp + 0xf0]
push dword [esp + 0xf0]
call fcn.00495318
pop ecx
pop ecx
test eax, eax
je 0x498b9e
mov esi, eax
mov ebx, edx
jmp 0x498ac9
mov ecx, dword [esp + 4]
mov edx, dword [esp]
call fcn.0049495e
lea edi, [esp + 0xe4]
mov esi, edx
mov edx, eax
mov ecx, dword [edi + 0x10]
push edi
push esi
call fcn.0049573a
pop ecx
pop ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0049538c
mov ecx, dword [edi + 0xc]
mov ebx, eax
mov dword [esp + 0x18], edx
call fcn.0049538c
mov esi, eax
mov dword [esp + 0x10], edx
push dword [edi + 0xc]
push dword [edi + 8]
push eax
push ebx
push ebx
call fcn.004fd675
add esp, 0x14
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00494c51
mov ecx, dword [edi + 0xc]
call fcn.0049536a
mov ecx, eax
push dword [edi + 0xc]
push dword [edi + 8]
push ebx
call fcn.004953ad
add esp, 0xc
mov esi, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov ecx, ebx
mov edi, eax
call fcn.00494c51
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
lea eax, [esp + 0xe4]
push eax
push esi
push edi
call fcn.004953d0
add esp, 0xc
mov ebx, edx
mov edx, dword [esp + 0x10]
mov ecx, edi
mov esi, eax
call fcn.00494c51
lea edi, [esp + 0xe4]
mov edx, esi
mov ecx, dword [edi + 0x10]
push edi
push ebx
call fcn.0049573a
pop ecx
pop ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x10], eax
mov ecx, eax
push edi
push dword [esp + 4]
call fcn.0049573a
pop ecx
pop ecx
mov esi, eax
mov edi, edx
push edx
push 1
push eax
call fcn.004fd7b3
add esp, 0xc
mov ecx, esi
mov edx, edi
mov ebx, eax
call fcn.00494c51
cmp ebx, 0xffffffff
setne byte [esp + 0xc]
je 0x498b3d
push 0x16
pop eax
mov dword [esp], eax
mov dword [esp + 8], 0x551008
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
call fcn.00494c51
jmp 0x498bbd
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x138]
push eax
push dword [esp + 0x4c]
call fcn.0049573a
pop ecx
pop ecx
mov esi, edx
lea edi, [esp + 0x80]
mov dword [esp + 4], eax
mov edx, eax
mov ecx, edi
mov dword [esp + 0x58], esi
push esi
call fcn.004948a7
pop eax
mov ecx, edi
call fcn.004947fd
cmp edx, 0x100
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
jbe 0x498bd9
push 8
pop eax
mov dword [esp], eax
mov dword [esp + 8], 0x551061
jmp 0x498c2b
mov ecx, dword [esp + 4]
mov edx, dword [esp]
call fcn.00494c51
mov byte [esp + 0xc], 1
mov dword [esp + 8], 0x55101e
push 0x10
pop eax
mov dword [esp], eax
lea ecx, [esp + 0x108]
call fcn.00494c3c
mov eax, dword [esp]
mov ebx, dword [esp + 8]
mov dword [esp + 4], eax
jmp 0x49870b
push 0xf
pop eax
cmp dword [esp + 0x20], 4
mov dword [esp], eax
mov dword [esp + 8], 0x5510af
jb 0x498c2b
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.004fd72f
pop ecx
pop edx
test eax, eax
je 0x498c11
push 0x10
pop eax
mov dword [esp], eax
mov dword [esp + 8], 0x55101e
jmp 0x498c2b
push dword [esp + 0x20]
push 3
push dword [esp + 0x1c]
call fcn.004fd83b
add esp, 0xc
test eax, eax
je 0x498e4b
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
call fcn.00494c51
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x58]
call fcn.00494c51
cmp dword [esp + 0x14], 0
je 0x498b2b
mov eax, dword [esp + 0xe8]
lea edi, [esp + 0xb4]
movsd xmm2, qword [esp + 0x120]
mov ebx, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xf0]
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
mov eax, dword [eax + 0x10]
movsd qword [edi - 0x2c], xmm1
movsd xmm1, qword [esp + 0x118]
movsd qword [edi - 0x34], xmm0
mov dword [edi - 0x24], eax
movsd qword [edi - 8], xmm2
movsd xmm2, qword [esp + 0x108]
movsd qword [edi - 0x10], xmm1
movsd xmm1, qword [esp + 0x110]
movsd qword [edi - 0x20], xmm2
movsd qword [edi - 0x18], xmm1
push 0xc
pop ecx
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
push 0x19
pop ecx
lea edi, [esp + 0x174]
lea esi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
call fcn.0048ab64
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
call fcn.00494c51
cmp dword [esp + 0xc], 0
je 0x498424
lea eax, [esp + 0x27c]
push 0x19
pop ecx
lea esi, [esp + 0x174]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov dword [eax + 0x64], ecx
mov dword [eax + 0x68], esi
mov dword [eax + 0x6c], edx
mov esi, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x70], esi
mov dword [eax + 0x74], edx
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x78], esi
mov dword [eax + 0x7c], edx
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [eax + 0x80], esi
mov dword [eax + 0x84], edx
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x64]
mov dword [eax + 0x88], esi
cmp edx, dword [esp + 0x60]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov dword [eax - 0xc], ebx
mov dword [eax - 8], esi
mov dword [eax - 4], edx
jne 0x498e03
mov ecx, 0x8c
lea edi, [esp + 0x308]
push ecx
push eax
push edi
call fcn.005010b0
add esp, 0xc
mov eax, 0x8c
lea esi, [esp + 0x1e4]
push eax
push edi
push esi
call fcn.005010b0
add esp, 0xc
mov ecx, dword [esp + 0x170]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov dword [esi - 0xc], ebx
cmp ecx, dword [esp + 0x16c]
mov dword [esi - 8], eax
mov dword [esi - 4], edx
jne 0x498e1c
lea eax, [esp + 0x1d8]
push 0x98
push eax
push dword [esp + 0x30]
call fcn.005010b0
add esp, 0xc
jmp 0x497ec9
lea ecx, [esp + 0x270]
call fcn.00494be3
push 0xf
pop edi
mov ebx, 0x55102e
jmp 0x497ebc
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x1d8]
mov dword [eax], 0x55102e
mov dword [eax + 4], 0xf
and dword [eax + 8], 0
call fcn.00494be3
jmp 0x497ec9
mov edx, dword [esp + 0x20]
jmp 0x49894c
mov esi, dword [esp + 0x14]
push dword [esi + 4]
push dword [esi]
call fcn.004fe88b
pop ecx
pop ecx
mov ebx, dword [esp + 0x20]
mov dword [esp], edx
mov ecx, esi
mov dword [esp + 8], eax
mov edx, ebx
call fcn.0049525a
mov edi, eax
mov eax, dword [esp]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], ebx
xor esi, esi
mov ecx, ebx
inc esi
mov edx, esi
mov dword [esp + 0x84], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x80], eax
lea eax, [edi - 1]
mov dword [esp + 0x24], eax
call fcn.00494848
lea ecx, [esp + 0x15c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebx
call fcn.004947fd
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], edx
mov ecx, eax
shr eax, 5
cmp eax, edx
jae 0x498fbe
mov edx, esi
shl edx, cl
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
lea ecx, [edi + 0x1f]
xor edx, edx
and ecx, 0xffffffe0
mov dword [esp + 0x24], ecx
shr ecx, 1
mov dword [esp + 0x3c], ecx
call fcn.004952fa
sub edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x88]
add edi, 0xfffffffd
test edi, edi
je 0x498f1e
push dword [esp + 0x20]
push ebx
mov eax, dword [esp + 0x24]
push eax
push eax
call fcn.004fd8f0
add esp, 0x10
inc edi
jmp 0x498f04
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
call fcn.0049495e
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], edx
je 0x498f44
bsr eax, dword [esp + 0x3c]
xor eax, 0x1f
jmp 0x498f47
push 0x20
pop eax
mov cl, 0x1f
xor edi, edi
sub cl, al
xor eax, eax
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, eax
cmp esi, 2
mov eax, edi
sbb eax, 0
jb 0x498fac
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
shrd esi, edi, 1
shr edi, 1
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.004949bd
pop eax
pop ecx
test dword [esp + 0x3c], esi
je 0x498f5d
push dword [esp + 0x40]
lea eax, [esp + 0x84]
push eax
push ebx
push dword [esp + 0x28]
mov eax, dword [esp + 0x34]
push eax
push eax
call fcn.004f0540
add esp, 0x18
jmp 0x498f5d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
call fcn.00494c51
jmp 0x498c40
mov edx, dword [esp + 0x38]
jmp 0x49894c
and dword [esp + 0x88], 0
lea ecx, [esp + 0x104]
lea edx, [esp + 0x15c]
push 0x54f380
lea eax, [esp + 0x84]
push eax
call fcn.0050f121
pop eax
pop ecx
ud2