Function at 0x495e80
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x79a200]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push esi
xor eax, eax
mov dword [ebp - 0x16c], 0
push edi
mov dword [ebp - 0x17c], eax
xor esi, esi
mov dword [ebp - 0x178], eax
xor edi, edi
movzx eax, word [ebx + 0x6274]
push 0xa
mov dword [ebp - 0x18c], eax
mov eax, dword [ebx]
push 1
push ecx
push dword [ebx + 4]
mov eax, dword [eax]
mov dword [ebp - 0x180], 0
call eax
push 3
lea eax, [ebp - 0x10]
push 0x6f5e4c
push eax
call fcn.006a8ed0
add esp, 0x1c
test eax, eax
je 0x497344
push 3
lea eax, [ebp - 0x10]
push 0x6f5e50
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x497344
push 4
lea eax, [ebp - 0x10]
push str.IIII
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x497344
push 4
lea eax, [ebp - 0x10]
push str.MMMM
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x497344
push 2
lea eax, [ebp - 0x10]
push 0x6f5e64
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x4971de
push 3
lea eax, [ebp - 0x10]
push 0x6f5e68
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x4971de
mov ecx, str.Nikon
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x495fa7
test dl, dl
je 0x495fa3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x495fa7
add eax, 2
add ecx, 2
test dl, dl
jne 0x495f87
xor eax, eax
jmp 0x495fac
sbb eax, eax
or eax, 1
mov esi, 0x4949
test eax, eax
jne 0x496005
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
mov esi, eax
push ebx
mov dword [ebp - 0x15c], esi
call fcn.00489f30
push ebx
mov word [ebx + 0x6274], ax
call fcn.00489f30
add esp, 0xc
cmp ax, 0x2a
jne 0x497337
push ebx
call fcn.00489f70
mov ecx, dword [ebx]
add eax, 0xfffffff8
push 1
push eax
push dword [ebx + 4]
mov eax, dword [ecx + 8]
call eax
add esp, 0x10
jmp 0x49624e
mov ecx, str.OLYMPUS
lea eax, [ebp - 0x10]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496030
test dl, dl
je 0x49602c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496030
add eax, 2
add ecx, 2
test dl, dl
jne 0x496010
xor eax, eax
jmp 0x496035
sbb eax, eax
or eax, 1
test eax, eax
jne 0x496075
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
push 1
push 0xfffffffffffffffe
push dword [ebx + 4]
lea esi, [eax - 0xa]
mov eax, dword [ebx]
mov dword [ebp - 0x15c], esi
mov eax, dword [eax + 8]
call eax
push ebx
call fcn.00489f30
push ebx
mov word [ebx + 0x6274], ax
call fcn.00489f30
add esp, 0x18
jmp 0x49624e
push 8
lea eax, [ebp - 0x10]
push str.FUJIFILM
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x49622d
push 4
lea eax, [ebp - 0x10]
push str.SONY
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x49622d
mov ecx, str.Panasonic
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4960d3
test dl, dl
je 0x4960cf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4960d3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4960b3
xor eax, eax
jmp 0x4960d8
sbb eax, eax
or eax, 1
test eax, eax
je 0x49622d
mov ecx, str.OLYMP
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496108
test dl, dl
je 0x496104
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496108
add eax, 2
add ecx, 2
test dl, dl
jne 0x4960e8
xor eax, eax
jmp 0x49610d
sbb eax, eax
or eax, 1
test eax, eax
je 0x496227
mov ecx, str.LEICA
lea eax, [ebp - 0x10]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496140
test dl, dl
je 0x49613c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496140
add eax, 2
add ecx, 2
test dl, dl
jne 0x496120
xor eax, eax
jmp 0x496145
sbb eax, eax
or eax, 1
test eax, eax
je 0x496227
mov ecx, str.Ricoh
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496175
test dl, dl
je 0x496171
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496175
add eax, 2
add ecx, 2
test dl, dl
jne 0x496155
xor eax, eax
jmp 0x49617a
sbb eax, eax
or eax, 1
test eax, eax
je 0x496227
mov ecx, 0x6f49c0
lea eax, [ebp - 0x10]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4961b0
test dl, dl
je 0x4961ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4961b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x496190
xor eax, eax
jmp 0x4961b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x496227
mov ecx, 0x6f5eac
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4961e1
test dl, dl
je 0x4961dd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4961e1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4961c1
xor eax, eax
jmp 0x4961e6
sbb eax, eax
or eax, 1
test eax, eax
je 0x496221
mov ecx, 0x6f5eb0
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496212
test dl, dl
je 0x49620e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496212
add eax, 2
add ecx, 2
test dl, dl
jne 0x4961f2
xor eax, eax
jmp 0x496217
sbb eax, eax
or eax, 1
test eax, eax
je 0x496221
push 1
push 0xfffffffffffffff6
jmp 0x496238
push 1
push 0xfffffffffffffffc
jmp 0x496238
push 1
push 0xfffffffffffffffe
jmp 0x496238
push 1
mov word [ebx + 0x6274], si
push 2
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
mov esi, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebp - 0x15c], esi
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 4
cmp eax, 0x3e8
ja 0x497344
test eax, eax
je 0x497337
mov edi, dword [ebp + 0x10]
shl edi, 0x10
mov dword [ebp + 0x10], edi
nop word [eax + eax]
dec eax
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x170]
push eax
push esi
push ebx
call fcn.004a09e0
or edi, dword [ebp - 0x170]
add esp, 0x18
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x170], edi
cmp edi, 2
jne 0x49636f
lea eax, [ebx + 0x6485]
push str.NIKON
push eax
call fcn.006911d0
add esp, 8
test eax, eax
je 0x496301
push ebx
call fcn.00489f30
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x6590], xmm0
mov esi, dword [ebp - 0x160]
cmp edi, 7
jne 0x4964de
cmp dword [ebp - 0x158], 2
jne 0x496334
cmp esi, 0x14
jbe 0x496334
mov ecx, dword [ebx]
lea eax, [ebx + 0x6505]
push 0x40
push eax
push dword [ebx + 4]
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
mov esi, dword [ebp - 0x158]
lea eax, [ebx + 0x6485]
push str.PENTAX
push eax
call fcn.006911d0
add esp, 8
test eax, eax
je 0x4966ab
cmp edi, 0x1b
jne 0x496696
mov edi, 0x1018
mov dword [ebp - 0x170], edi
jmp 0x496fdd
cmp edi, 4
jne 0x496301
mov esi, dword [ebp - 0x160]
lea eax, [esi - 0x1b]
cmp eax, 7
ja 0x496307
push ebx
call fcn.00489f70
push ebx
call fcn.00489f30
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x4963f5
movss xmm0, dword [ebx + 0x6590]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4963f5
movsd xmm0, qword [0x6ec850]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
shr ecx, 0x1f
addsd xmm1, qword [ecx*8 + 0x7768c0]
mulsd xmm1, qword [0x6f6a00]
subsd xmm1, qword [0x6ecab8]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x6ecad8]
movss dword [ebx + 0x6590], xmm0
push ebx
call fcn.00489f30
push ebx
call fcn.00489f30
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x496458
movss xmm0, dword [ebx + 0x6598]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x496458
movsd xmm0, qword [0x6ec850]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
shr ecx, 0x1f
addsd xmm1, qword [ecx*8 + 0x7768c0]
mulsd xmm1, qword [0x6f69e0]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x6598], xmm0
push ebx
call fcn.00489f30
movzx ecx, ax
add esp, 4
cmp ecx, 0xffff
je 0x4964ac
movss xmm0, dword [ebx + 0x6594]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4964ac
movsd xmm0, qword [0x6ec850]
movsx eax, cx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x6f6af8]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x6594], xmm0
push ebx
call fcn.00489f30
push ebx
call fcn.00489f30
movzx eax, ax
push ebx
mov dword [ebp - 0x17c], eax
call fcn.00489f30
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 0x10
mov dword [ebx + 0x65a8], eax
jmp 0x496307
cmp edi, 8
jne 0x496506
mov esi, dword [ebp - 0x158]
cmp esi, 4
jne 0x49633a
push ebx
call fcn.00489f70
add esp, 4
mov dword [ebx + 0x65a8], eax
jmp 0x49633a
cmp edi, 9
jne 0x49655f
mov ecx, str.Canon
lea eax, [ebx + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x496536
test dl, dl
je 0x496532
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x496536
add eax, 2
add ecx, 2
test dl, dl
jne 0x496516
xor eax, eax
jmp 0x49653b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x496334
mov ecx, dword [ebx]
lea eax, [ebx + 0x6545]
push 1
push 0x40
push eax
push dword [ebx + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
jmp 0x496334
cmp edi, 0xc
jne 0x496595
cmp esi, 4
mov esi, dword [ebp - 0x158]
jne 0x49633a
push esi
push ebx
call fcn.0048a1d0
push esi
fstp dword [ebx + 0xe774]
push ebx
call fcn.0048a1d0
fstp dword [ebx + 0xe77c]
add esp, 0x10
jmp 0x49633a
cmp edi, 0x10
jne 0x4965bd
mov esi, dword [ebp - 0x158]
cmp esi, 4
jne 0x49633a
push ebx
call fcn.00489f70
add esp, 4
mov dword [ebx + 0x65b8], eax
jmp 0x49633a
cmp edi, 0x11
jne 0x49661c
cmp dword [ebx + 0x6614], 0
je 0x496334
push 5
lea eax, [ebx + 0x6485]
push str.NIKON
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
jne 0x496334
mov esi, dword [ebx]
push eax
push ebx
call fcn.00489f70
add eax, dword [ebp - 0x15c]
add esp, 4
push eax
push dword [ebx + 4]
mov eax, dword [esi + 8]
call eax
push dword [ebp - 0x15c]
push ebx
call fcn.00498f80
add esp, 0x14
jmp 0x496334
cmp edi, 0x14
jne 0x496655
cmp esi, 0xa00
mov esi, dword [ebp - 0x158]
jne 0x49633a
cmp esi, 7
jne 0x49633a
mov eax, dword [ebx]
push 1
push 0x4e0
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x49701f
cmp edi, 0x15
jne 0x496334
mov esi, dword [ebp - 0x158]
cmp esi, 2
jne 0x49633a
cmp dword [ebx + 0x6614], 0
je 0x49633a
mov ecx, dword [ebx]
lea eax, [ebx + 0x64c5]
push 1
push 0x40
push eax
push dword [ebx + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
jmp 0x49633a
cmp edi, 0x1c
jne 0x4966ab
mov edi, 0x1017
mov dword [ebp - 0x170], edi
jmp 0x496faa
cmp edi, 0x1d
jne 0x49671d
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x1c]
call eax
mov esi, eax
add esp, 4
test esi, esi
je 0x49697c
cmp esi, 0xffffffff
je 0x49697c
push esi
call fcn.006ab3a0
add esp, 4
test eax, eax
je 0x4966e2
add esi, 0xffffffd0
jmp 0x4966f3
mov eax, 0xcccccccd
mul esi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
mov ecx, dword [ebp - 0x180]
push dword [ebx + 4]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov eax, dword [ebx]
mov dword [ebp - 0x180], ecx
mov eax, dword [eax + 0x1c]
call eax
mov esi, eax
add esp, 4
test esi, esi
jne 0x4966c7
jmp 0x49697c
cmp edi, 0x81
jne 0x496779
cmp esi, 4
jne 0x4967fe
push ebx
call fcn.00489f70
mov ecx, dword [ebx]
mov dword [ebx + 0x65c0], eax
add eax, 0x29
push 0
push eax
push dword [ebx + 4]
mov eax, dword [ecx + 8]
call eax
push ebx
call fcn.00489f30
add ax, ax
push ebx
mov word [ebx + 0x66b0], ax
call fcn.00489f30
add esp, 0x18
mov word [ebx + 0x66b2], ax
mov dword [ebx + 0x65b0], 0x61616161
jmp 0x496982
cmp edi, 0x29
jne 0x4967f6
cmp esi, 1
jne 0x496982
mov eax, dword [ebp - 0x17c]
cmp eax, 0x12
jae 0x49679e
movsx ecx, byte [eax + str.012347800000005896]
sub ecx, 0x30
jmp 0x4967a0
xor ecx, ecx
mov eax, dword [ebx]
shl ecx, 5
push 1
add ecx, 8
mov eax, dword [eax + 8]
push ecx
push dword [ebx + 4]
call eax
add esp, 0xc
xor esi, esi
push ebx
call fcn.00489f70
add esp, 4
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x7768c0]
mov eax, esi
xor eax, 2
shr eax, 1
xor eax, esi
inc esi
cvtpd2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0xe774], xmm0
cmp esi, 4
jb 0x4967b8
jmp 0x49697c
cmp edi, 0x81
jne 0x496808
cmp esi, 7
je 0x49682b
jmp 0x496982
cmp edi, 0x100
jne 0x49681a
cmp esi, 7
je 0x49682b
jmp 0x496982
cmp edi, 0x280
jne 0x49684c
cmp esi, 1
jne 0x496982
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [ebp - 0x160]
add esp, 4
mov dword [ebx + 0x65c4], eax
mov dword [ebx + 0x65d0], esi
jmp 0x496852
mov esi, dword [ebp - 0x160]
cmp edi, 0x88
jne 0x496891
mov esi, dword [ebp - 0x158]
cmp esi, 4
jne 0x496982
push ebx
call fcn.00489f70
add esp, 4
mov dword [ebx + 0x65c4], eax
test eax, eax
je 0x496982
add eax, dword [ebp - 0x15c]
mov dword [ebx + 0x65c4], eax
jmp 0x496982
cmp edi, 0x89
jne 0x4968bc
mov esi, dword [ebp - 0x158]
cmp esi, 4
jne 0x496982
push ebx
call fcn.00489f70
add esp, 4
mov dword [ebx + 0x65d0], eax
jmp 0x496982
cmp edi, 0x8c
je 0x4968cc
cmp edi, 0x96
jne 0x4968df
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov dword [ebx + 0x65c8], eax
cmp edi, 0x97
jne 0x496a7b
mov edi, dword [ebp - 0x16c]
mov esi, 4
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x1c]
call eax
lea edi, [edi + edi*4]
add esp, 4
lea edi, [edi - 0x18]
lea edi, [eax + edi*2]
sub esi, 1
jne 0x4968f6
mov eax, edi
mov dword [ebp - 0x16c], edi
mov edi, dword [ebp - 0x164]
sub eax, 0x64
je 0x496a34
sub eax, 2
je 0x496a2b
sub eax, 1
je 0x4969e0
mov eax, dword [ebp - 0x16c]
cmp eax, 0xc8
jb 0x49697c
cmp eax, 0xcd
je 0x496962
mov eax, dword [ebx]
push 1
push 0x118
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov eax, dword [ebx]
lea ecx, [ebp - 0x154]
push 1
push 0x144
push ecx
push dword [ebx + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
mov esi, dword [ebp - 0x158]
mov eax, edi
or eax, 0x70
cmp eax, 0x2070
jne 0x4969b2
cmp esi, 4
jne 0x4969b2
mov esi, dword [ebx]
push 0
push ebx
call fcn.00489f70
add eax, dword [ebp - 0x15c]
add esp, 4
push eax
push dword [ebx + 4]
mov eax, dword [esi + 8]
call eax
add esp, 0xc
cmp edi, 0x2010
jne 0x497073
cmp dword [ebp - 0x158], 7
mov esi, dword [ebp - 0x15c]
je 0x4971b3
mov dword [ebx + 0x2e7fc], 0x493510
jmp 0x4971b3
mov eax, dword [ebx]
push 1
push 0x10
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
lea esi, [ebx + 0xe774]
mov edi, 4
nop dword [eax]
push ebx
call fcn.00489f30
movzx eax, ax
lea esi, [esi + 4]
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x496a00
mov edi, dword [ebp - 0x164]
jmp 0x49697c
push 1
push 6
jmp 0x497143
mov eax, dword [ebx]
push 1
push 0x44
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
xor esi, esi
push ebx
call fcn.00489f30
movzx eax, ax
mov ecx, esi
and ecx, 1
add esp, 4
add ecx, ecx
movd xmm0, eax
mov eax, esi
shr eax, 1
inc esi
cvtdq2ps xmm0, xmm0
or ecx, eax
movss dword [ebx + ecx*4 + 0xe774], xmm0
cmp esi, 4
jb 0x496a47
jmp 0x49697c
cmp edi, 0xa4
jne 0x496aeb
mov esi, dword [ebp - 0x158]
cmp esi, 3
jne 0x496982
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebx]
push 1
lea eax, [eax + eax*2]
shl eax, 4
push eax
push dword [ebx + 4]
mov eax, dword [ecx + 8]
call eax
add esp, 0xc
lea esi, [ebx + 0xe774]
mov edi, 3
nop dword [eax]
push ebx
call fcn.00489f30
movzx eax, ax
lea esi, [esi + 4]
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x496ac0
mov edi, dword [ebp - 0x164]
jmp 0x49697c
cmp edi, 0xa7
jne 0x496c0b
mov eax, dword [ebp - 0x16c]
add eax, 0xffffff38
cmp eax, 0xc
jae 0x49697c
movss xmm0, dword [ebx + 0xe774]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x49697c
mov eax, dword [ebp - 0x180]
push dword [ebx + 4]
movzx eax, al
mov al, byte [eax + 0x6f46b0]
mov byte [ebp - 0x165], al
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [ebx]
mov edi, eax
push dword [ebx + 4]
mov ecx, dword [ecx + 0x1c]
call ecx
push dword [ebx + 4]
xor edi, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [ebx]
mov esi, eax
push dword [ebx + 4]
xor esi, edi
mov ecx, dword [ecx + 0x1c]
call ecx
mov dh, byte [ebp - 0x165]
xor eax, esi
mov dl, dh
add esp, 0x10
xor ecx, ecx
mov ah, byte [eax + 0x6f47b0]
mov al, dh
add al, al
add dl, al
shl dl, 5
nop word [eax + eax]
add ah, dl
add dl, dh
xor byte [ebp + ecx - 0x154], ah
inc ecx
cmp ecx, 0x144
jb 0x496b90
mov eax, dword [ebp - 0x16c]
xor esi, esi
movsx edi, byte [eax + 0x6f5e00]
sub edi, 0x30
mov eax, edi
and eax, 0xfffffffe
and edi, 1
mov dword [ebp - 0x178], eax
lea eax, [eax + esi*2]
lea ecx, [ebp - 0x154]
add eax, ecx
push eax
push ebx
call fcn.0049f0e0
movzx eax, ax
add esp, 8
movd xmm0, eax
mov eax, esi
shr eax, 1
xor eax, edi
xor eax, esi
inc esi
cvtdq2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0xe774], xmm0
mov eax, dword [ebp - 0x178]
cmp esi, 4
jb 0x496bc4
mov edi, dword [ebp - 0x164]
jmp 0x49697c
cmp edi, 0x200
jne 0x496c7c
cmp esi, 3
jne 0x496c32
push ebx
call fcn.00489f70
push ebx
call fcn.00489f70
add esp, 8
mov dword [ebx + 0x65a8], eax
jmp 0x49697c
cmp esi, 4
jne 0x49697c
push ebx
call fcn.00489f30
push ebx
movzx esi, ax
call fcn.00489f30
movzx edi, ax
push ebx
add edi, esi
call fcn.00489f30
movzx esi, ax
push ebx
add esi, edi
call fcn.00489f30
mov edi, dword [ebp - 0x164]
add esp, 0x10
movzx eax, ax
add eax, esi
shr eax, 2
mov dword [ebx + 0x65f8], eax
jmp 0x49697c
cmp edi, 0x201
jne 0x496c92
cmp esi, 4
je 0x497150
jmp 0x49697c
cmp edi, 0x220
jne 0x496cbc
cmp esi, 0x35
jne 0x49697c
mov eax, dword [ebx]
push 1
push 0xe
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
push ebx
call fcn.0049ac90
jmp 0x496979
cmp edi, 0x401
jne 0x496d04
cmp esi, 4
jne 0x49697c
push ebx
call fcn.00489f70
push ebx
mov esi, eax
call fcn.00489f70
push ebx
add esi, eax
call fcn.00489f70
push ebx
add esi, eax
call fcn.00489f70
mov edi, dword [ebp - 0x164]
add eax, esi
add esp, 0x10
shr eax, 2
mov dword [ebx + 0x65f8], eax
jmp 0x49697c
cmp edi, 0xe01
jne 0x496dd7
movsx eax, word [ebx + 0x6274]
mov dword [ebp - 0x158], eax
mov eax, 0x4949
mov word [ebx + 0x6274], ax
mov eax, dword [ebx]
push 1
push 0x16
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov dword [ebp - 0x174], 0x16
cmp esi, 0x2c
jbe 0x496dc8
nop dword [eax]
push ebx
call fcn.00489f70
mov ecx, dword [ebx]
mov edi, eax
push 1
push 0xe
push dword [ebx + 4]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x170], edi
call ecx
push ebx
call fcn.00489f70
add esp, 0x14
lea esi, [eax - 4]
cmp edi, 0x76a43207
jne 0x496d9a
push ebx
call fcn.00489f30
movzx ecx, ax
add esp, 4
mov dword [ebx + 0x66c8], ecx
jmp 0x496daa
mov eax, dword [ebx]
push 1
push esi
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov eax, dword [ebp - 0x174]
add eax, 0x16
add eax, esi
mov esi, dword [ebp - 0x160]
mov dword [ebp - 0x174], eax
add eax, 0x16
cmp eax, esi
jb 0x496d50
mov eax, dword [ebp - 0x158]
mov word [ebx + 0x6274], ax
jmp 0x496ddd
mov eax, dword [ebp - 0x158]
cmp edi, 0xe80
jne 0x496e76
cmp esi, 0x100
mov esi, dword [ebp - 0x158]
jne 0x496982
cmp esi, 7
jne 0x496982
mov eax, dword [ebx]
push 1
push 0x30
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
push ebx
call fcn.00489f30
movzx eax, ax
imul eax, eax, 0x1fc
push ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69d8]
mulss xmm0, dword [0x6f69a0]
movss dword [ebx + 0xe774], xmm0
call fcn.00489f30
movzx eax, ax
add esp, 0x14
imul eax, eax, 0x17e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69f8]
mulss xmm0, dword [0x6f69a0]
movss dword [ebx + 0xe77c], xmm0
jmp 0x496982
cmp edi, 0xf00
jne 0x496ed5
cmp eax, 7
jne 0x49697c
cmp esi, 0x266
jne 0x496ea8
mov eax, dword [ebx]
push 1
push 0xb0
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x497019
cmp esi, 0x2de
je 0x496ebc
cmp esi, 0x5de
jne 0x4971ad
mov eax, dword [ebx]
push 1
push 0x94
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x497019
cmp edi, 0x1011
jne 0x496ee7
cmp esi, 9
je 0x496eef
jmp 0x49697c
cmp edi, 0x20400200
jne 0x496f54
lea eax, [ebx + 0xe794]
mov dword [ebp - 0x178], 3
mov dword [ebp - 0x174], eax
mov esi, eax
mov edi, 3
nop dword [eax]
push ebx
call fcn.00489f30
cwde
lea esi, [esi + 4]
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x496f10
mov eax, dword [ebp - 0x174]
add eax, 0x10
sub dword [ebp - 0x178], 1
mov dword [ebp - 0x174], eax
jne 0x496f05
mov edi, dword [ebp - 0x164]
cmp edi, 0x1012
je 0x496f64
cmp edi, 0x20400600
jne 0x496f9a
cmp dword [ebp - 0x160], 4
jne 0x496f9a
mov dword [ebx + 0x65f8], 0
mov esi, 4
nop dword [eax]
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 4
shl eax, 2
add dword [ebx + 0x65f8], eax
sub esi, 1
jne 0x496f80
cmp edi, 0x1017
je 0x496faa
cmp edi, 0x20400100
jne 0x496fcd
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [ebx + 0xe774], xmm0
cmp edi, 0x1018
je 0x496fdd
cmp edi, 0x20400100
jne 0x497000
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [ebx + 0xe77c], xmm0
cmp edi, 0x2011
jne 0x49697c
cmp dword [ebp - 0x160], 2
jne 0x49697c
mov esi, dword [ebp - 0x158]
mov eax, 0x4d4d
push ebx
mov word [ebx + 0x6274], ax
call fcn.00489f30
movzx eax, ax
push ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [ebx + 0xe774], xmm0
call fcn.00489f30
movzx eax, ax
add esp, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [ebx + 0xe77c], xmm0
jmp 0x496982
cmp edi, 0x2020
jne 0x49709a
mov esi, dword [ebp - 0x15c]
push 0x102
push 0x101
push esi
push ebx
call fcn.004988b0
add esp, 0x10
jmp 0x4971b3
cmp edi, 0x2040
jne 0x4970b8
mov esi, dword [ebp - 0x15c]
push edi
push esi
push ebx
call fcn.00495e80
add esp, 0xc
jmp 0x4971b3
cmp edi, 0xb028
jne 0x4970f5
mov esi, dword [ebx]
push 0
push ebx
call fcn.00489f70
add esp, 4
push eax
push dword [ebx + 4]
mov eax, dword [esi + 8]
call eax
mov esi, dword [ebp - 0x15c]
push 0x89
push 0x88
push esi
push ebx
call fcn.004988b0
add esp, 0x1c
jmp 0x4971b3
cmp edi, 0x4001
jne 0x4971ad
mov eax, dword [ebp - 0x160]
cmp eax, 0x1f4
jbe 0x4971ad
cmp eax, 0x246
jne 0x497120
mov ecx, 0x32
jmp 0x497140
cmp eax, 0x28d
jne 0x49712e
mov ecx, 0x44
jmp 0x497140
cmp eax, 0x1400
mov ecx, 0x7e
mov eax, 0x8e
cmove ecx, eax
push 1
push ecx
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
xor esi, esi
push ebx
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
mov eax, esi
shr eax, 1
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [ebx + eax*4 + 0xe774], xmm0
cmp esi, 4
jb 0x497152
mov eax, dword [ebx]
push 1
push 0x16
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
xor esi, esi
nop dword [eax]
push ebx
call fcn.00489f30
mov ecx, esi
add esp, 4
shr ecx, 1
xor ecx, esi
inc esi
mov word [ebx + ecx*2 + 0xe76c], ax
cmp esi, 4
jb 0x497190
mov esi, dword [ebp - 0x15c]
mov eax, dword [ebx]
push 0
push dword [ebp - 0x184]
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x188]
add esp, 0xc
mov edi, dword [ebp + 0x10]
test eax, eax
jne 0x496280
jmp 0x497337
push dword [ebx + 4]
mov eax, 0x4d4d
mov word [ebx + 0x6274], ax
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
cmp eax, dword [ebx + 0x65c0]
jge 0x497337
cmp eax, 0x4000
jae 0x497337
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], esi
mov dword [ebp - 0x16c], esi
mov dword [ebp - 0x180], esi
mov dword [ebp - 0x174], esi
mov esi, edi
push ebx
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x170], edi
call fcn.00489f30
add esp, 4
movzx edi, ax
cmp esi, 0x100
jne 0x497318
cmp edi, esi
jne 0x497318
cmp dword [ebp - 0x188], esi
jbe 0x497318
cmp dword [ebp - 0x184], 0x280
jae 0x497318
cmp dword [ebp - 0x174], esi
jbe 0x497318
cmp dword [ebp - 0x180], 0x280
jae 0x497318
mov eax, dword [ebp - 0x17c]
mov dword [ebx + 0xe780], 0x43800000
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7768c0]
mov eax, esi
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe774], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7768c0]
mov eax, dword [ebp - 0x16c]
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe778], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7768c0]
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe77c], xmm0
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [ebp - 0x164]
add esp, 4
cmp eax, dword [ebx + 0x65c0]
jl 0x497203
mov eax, dword [ebp - 0x18c]
mov word [ebx + 0x6274], ax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0068d76f
mov esp, ebp
pop ebp
ret