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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c8
mov eax, dword [0x1019c020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov dword [ebp - 0x1a8], 0
xor eax, eax
mov dword [ebp - 0x1b8], 0
push esi
push edi
mov dword [ebp - 0x1b4], eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x19c], eax
mov esi, edx
mov dword [ebp - 0x1b0], eax
xor edi, edi
movzx eax, word [ebx + 0x6274]
push 0xa
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebx]
push 1
push ecx
push dword [ebx + 4]
mov eax, dword [eax]
mov dword [ebp - 0x160], esi
call eax
push 3
lea eax, [ebp - 0x10]
push 0x1018bec0
push eax
call fcn.1013b340
add esp, 0x1c
test eax, eax
je 0x100bbe58
push 3
lea eax, [ebp - 0x10]
push 0x1018bec4
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100bbe58
push 4
lea eax, [ebp - 0x10]
push str.IIII
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100bbe58
push 4
lea eax, [ebp - 0x10]
push str.MMMM
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100bbe58
push 2
lea eax, [ebp - 0x10]
push 0x1018bed8
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100bbd53
push 3
lea eax, [ebp - 0x10]
push 0x1018bedc
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100bbd53
mov ecx, str.Nikon
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba652
test dl, dl
je 0x100ba64e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba652
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba632
xor eax, eax
jmp 0x100ba657
sbb eax, eax
or eax, 1
mov edi, 0x4949
test eax, eax
jne 0x100ba6ab
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov dword [ebp - 0x160], eax
mov ecx, ebx
mov esi, eax
call fcn.100a88b0
mov ecx, ebx
mov word [ebx + 0x6274], ax
call fcn.100a88b0
cmp ax, 0x2a
jne 0x100bbe4b
mov ecx, ebx
call fcn.100a8910
mov ecx, dword [ebx]
add eax, 0xfffffff8
push 1
push eax
mov eax, dword [ecx + 8]
jmp 0x100ba8ed
mov ecx, str.OLYMPUS
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba6d3
test dl, dl
je 0x100ba6cf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba6d3
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba6b3
xor eax, eax
jmp 0x100ba6d8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100ba71d
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
lea esi, [eax - 0xa]
mov eax, dword [ebx]
push 1
push 0xfffffffffffffffe
push dword [ebx + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x160], esi
call eax
add esp, 0xc
mov ecx, ebx
call fcn.100a88b0
mov ecx, ebx
mov word [ebx + 0x6274], ax
call fcn.100a88b0
jmp 0x100ba8f5
push 8
lea eax, [ebp - 0x10]
push str.FUJIFILM
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100ba8dd
push 4
lea eax, [ebp - 0x10]
push str.SONY
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
je 0x100ba8dd
mov ecx, str.Panasonic
lea eax, [ebp - 0x10]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba780
test dl, dl
je 0x100ba77c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba780
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba760
xor eax, eax
jmp 0x100ba785
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8dd
mov ecx, str.OLYMP
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba7b5
test dl, dl
je 0x100ba7b1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba7b5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba795
xor eax, eax
jmp 0x100ba7ba
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d7
mov ecx, str.LEICA
lea eax, [ebp - 0x10]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba7f0
test dl, dl
je 0x100ba7ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba7f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba7d0
xor eax, eax
jmp 0x100ba7f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d7
mov ecx, str.Ricoh
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba825
test dl, dl
je 0x100ba821
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba825
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba805
xor eax, eax
jmp 0x100ba82a
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d7
mov ecx, str.EPSON
lea eax, [ebp - 0x10]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba860
test dl, dl
je 0x100ba85c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba860
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba840
xor eax, eax
jmp 0x100ba865
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d7
mov ecx, 0x1018bf28
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba891
test dl, dl
je 0x100ba88d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba891
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba871
xor eax, eax
jmp 0x100ba896
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d1
mov ecx, 0x1018bf2c
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ba8c2
test dl, dl
je 0x100ba8be
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ba8c2
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ba8a2
xor eax, eax
jmp 0x100ba8c7
sbb eax, eax
or eax, 1
test eax, eax
je 0x100ba8d1
push 1
push 0xfffffffffffffff6
jmp 0x100ba8e8
push 1
push 0xfffffffffffffffc
jmp 0x100ba8e8
push 1
push 0xfffffffffffffffe
jmp 0x100ba8e8
push 1
mov word [ebx + 0x6274], di
push 2
mov eax, dword [ebx]
mov eax, dword [eax + 8]
push dword [ebx + 4]
call eax
add esp, 0xc
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
cmp eax, 0x3e8
ja 0x100bbe58
test eax, eax
je 0x100bbe4b
shl dword [ebp + 8], 0x10
dec eax
mov edx, esi
mov dword [ebp - 0x1c0], eax
mov ecx, ebx
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x19c]
push eax
call fcn.100ba2b0
mov edi, dword [ebp - 0x19c]
add esp, 0x10
or edi, dword [ebp + 8]
mov dword [ebp - 0x1a0], edi
mov dword [ebp - 0x19c], edi
cmp edi, 2
jne 0x100ba9a0
lea eax, [ebx + 0x6485]
push str.NIKON
push eax
call fcn.1012ea50
add esp, 8
test eax, eax
je 0x100bace9
mov ecx, ebx
call fcn.100a88b0
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x6590], xmm0
jmp 0x100bace9
cmp edi, 4
jne 0x100bab14
mov esi, dword [ebp - 0x164]
lea eax, [esi - 0x1b]
cmp eax, 7
ja 0x100bacef
mov ecx, ebx
call fcn.100a8910
mov ecx, ebx
call fcn.100a88b0
movzx ecx, ax
cmp ecx, 0x7fff
je 0x100baa2d
movss xmm0, dword [ebx + 0x6590]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100baa2d
movsd xmm0, qword [0x101920b8]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
shr ecx, 0x1f
addsd xmm1, qword [ecx*8 + 0x101923d0]
mulsd xmm1, qword [0x10191ef0]
subsd xmm1, qword [0x101920f0]
call fcn.10138570
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x10192218]
movss dword [ebx + 0x6590], xmm0
mov ecx, ebx
call fcn.100a88b0
mov ecx, ebx
call fcn.100a88b0
movzx ecx, ax
cmp ecx, 0x7fff
je 0x100baa8f
movss xmm0, dword [ebx + 0x6598]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100baa8f
movsd xmm0, qword [0x101920b8]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
shr ecx, 0x1f
addsd xmm1, qword [ecx*8 + 0x101923d0]
mulsd xmm1, qword [0x10191ed0]
call fcn.10138570
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x6598], xmm0
mov ecx, ebx
call fcn.100a88b0
movzx ecx, ax
cmp ecx, 0xffff
je 0x100baae1
movss xmm0, dword [ebx + 0x6594]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100baae1
movsd xmm0, qword [0x101920b8]
movsx eax, cx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x101922a8]
call fcn.10138570
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x6594], xmm0
mov ecx, ebx
call fcn.100a88b0
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
mov ecx, ebx
mov dword [ebp - 0x1b4], eax
call fcn.100a88b0
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
mov dword [ebx + 0x65a8], eax
jmp 0x100bacef
cmp edi, 7
jne 0x100bab50
cmp dword [ebp - 0x15c], 2
mov esi, dword [ebp - 0x164]
jne 0x100bacef
cmp esi, 0x14
jbe 0x100bacef
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
jmp 0x100bacef
cmp edi, 8
jne 0x100bab74
cmp dword [ebp - 0x15c], 4
jne 0x100bace9
mov ecx, ebx
call fcn.100a8910
mov dword [ebx + 0x65a8], eax
jmp 0x100bace9
cmp edi, 9
jne 0x100babbc
mov ecx, str.Canon
lea eax, [ebx + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100baba4
test dl, dl
je 0x100baba0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100baba4
add eax, 2
add ecx, 2
test dl, dl
jne 0x100bab84
xor eax, eax
jmp 0x100baba9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100bace9
lea eax, [ebx + 0x6545]
jmp 0x100bacd8
cmp edi, 0xc
jne 0x100bac07
mov esi, dword [ebp - 0x164]
cmp esi, 4
jne 0x100bacef
mov edx, dword [ebp - 0x15c]
mov ecx, ebx
call fcn.100a8990
mov edx, dword [ebp - 0x15c]
mov ecx, ebx
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0xe774], xmm0
call fcn.100a8990
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0xe77c], xmm0
jmp 0x100bacef
cmp edi, 0x10
jne 0x100bac2b
cmp dword [ebp - 0x15c], 4
jne 0x100bace9
mov ecx, ebx
call fcn.100a8910
mov dword [ebx + 0x65b8], eax
jmp 0x100bace9
cmp edi, 0x11
jne 0x100bac86
cmp dword [ebx + 0x6614], 0
je 0x100bace9
push 5
lea eax, [ebx + 0x6485]
push str.NIKON
push eax
call fcn.1013b340
add esp, 0xc
test eax, eax
jne 0x100bace9
mov esi, dword [ebx]
mov ecx, ebx
push eax
call fcn.100a8910
add eax, dword [ebp - 0x160]
push eax
push dword [ebx + 4]
mov eax, dword [esi + 8]
call eax
mov edx, dword [ebp - 0x160]
add esp, 0xc
mov ecx, ebx
call fcn.100bcf10
jmp 0x100bace9
cmp edi, 0x14
jne 0x100bacbb
mov esi, dword [ebp - 0x164]
cmp esi, 0xa00
jne 0x100bacef
cmp dword [ebp - 0x15c], 7
jne 0x100bacef
mov eax, dword [ebx]
push 1
push 0x4e0
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x100bb932
cmp edi, 0x15
jne 0x100bace9
cmp dword [ebp - 0x15c], 2
jne 0x100bace9
cmp dword [ebx + 0x6614], 0
je 0x100bace9
lea eax, [ebx + 0x64c5]
mov ecx, dword [ebx]
push 1
push 0x40
push eax
push dword [ebx + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
mov esi, dword [ebp - 0x164]
lea eax, [ebx + 0x6485]
push str.PENTAX
push eax
call fcn.1012ea50
add esp, 8
test eax, eax
je 0x100bad31
cmp edi, 0x1b
jne 0x100bad1c
mov edi, 0x1018
mov dword [ebp - 0x19c], edi
jmp 0x100bb8b1
cmp edi, 0x1c
jne 0x100bad31
mov edi, 0x1017
mov dword [ebp - 0x19c], edi
jmp 0x100bb839
cmp edi, 0x1d
jne 0x100bada6
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 0x100bba0e
nop dword [eax]
cmp esi, 0xffffffff
je 0x100bba0e
push esi
call fcn.101395fa
add esp, 4
test eax, eax
je 0x100bad6b
add esi, 0xffffffd0
jmp 0x100bad7c
mov eax, 0xcccccccd
mul esi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
mov ecx, dword [ebp - 0x1b8]
push dword [ebx + 4]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov eax, dword [ebx]
mov dword [ebp - 0x1b8], ecx
mov eax, dword [eax + 0x1c]
call eax
mov esi, eax
add esp, 4
test esi, esi
jne 0x100bad50
jmp 0x100bba0e
cmp edi, 0x81
jne 0x100bae0b
mov ecx, dword [ebp - 0x15c]
cmp ecx, 4
jne 0x100bae9a
mov ecx, ebx
call fcn.100a8910
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
add esp, 0xc
mov ecx, ebx
call fcn.100a88b0
add ax, ax
mov ecx, ebx
mov word [ebx + 0x66b0], ax
call fcn.100a88b0
mov word [ebx + 0x66b2], ax
mov dword [ebx + 0x65b0], 0x61616161
jmp 0x100bba0e
cmp edi, 0x29
jne 0x100bae8c
mov ecx, dword [ebp - 0x15c]
cmp ecx, 1
jne 0x100bba14
mov eax, dword [ebp - 0x1b4]
cmp eax, 0x12
jae 0x100bae36
movsx ecx, byte [eax + str.012347800000005896]
sub ecx, 0x30
jmp 0x100bae38
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
mov ecx, ebx
call fcn.100a8910
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x101923d0]
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 0x100bae50
jmp 0x100bba0e
cmp edi, 0x100
jne 0x100baea4
mov ecx, dword [ebp - 0x15c]
cmp ecx, 7
je 0x100baebb
jmp 0x100bba14
cmp edi, 0x280
jne 0x100baed4
mov ecx, dword [ebp - 0x15c]
cmp ecx, 1
jne 0x100bba14
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov dword [ebx + 0x65c4], eax
mov dword [ebx + 0x65d0], esi
cmp edi, 0x88
jne 0x100baf19
mov ecx, dword [ebp - 0x15c]
cmp ecx, 4
jne 0x100bba14
mov ecx, ebx
call fcn.100a8910
mov esi, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x15c]
mov dword [ebx + 0x65c4], eax
test eax, eax
je 0x100bba1a
add eax, esi
mov dword [ebx + 0x65c4], eax
jmp 0x100bba1a
cmp edi, 0x89
jne 0x100baf42
mov ecx, dword [ebp - 0x15c]
cmp ecx, 4
jne 0x100bba14
mov ecx, ebx
call fcn.100a8910
mov dword [ebx + 0x65d0], eax
jmp 0x100bba0e
cmp edi, 0x8c
je 0x100baf52
cmp edi, 0x96
jne 0x100baf65
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 0x100bb0a2
mov edi, dword [ebp - 0x1a8]
mov esi, 4
nop dword [eax]
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 0x100baf80
mov eax, edi
mov dword [ebp - 0x1a8], edi
mov edi, dword [ebp - 0x1a0]
sub eax, 0x64
je 0x100bb059
sub eax, 2
je 0x100bb050
sub eax, 1
je 0x100bb00b
mov eax, dword [ebp - 0x1a8]
cmp eax, 0xc8
jb 0x100bba0e
cmp eax, 0xcd
je 0x100bafec
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 - 0x158]
push 1
push 0x144
push ecx
push dword [ebx + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
jmp 0x100bba0e
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
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x100bb027
mov edi, dword [ebp - 0x1a0]
jmp 0x100bba0e
push 1
push 6
jmp 0x100bbc2f
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
nop dword [eax]
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
mov ecx, esi
and ecx, 1
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 0x100bb070
jmp 0x100bba0e
cmp edi, 0xa4
jne 0x100bb109
mov ecx, dword [ebp - 0x15c]
cmp ecx, 3
jne 0x100bba14
mov eax, dword [ebp - 0x1b4]
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
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x100bb0e0
mov edi, dword [ebp - 0x1a0]
jmp 0x100bba0e
cmp edi, 0xa7
jne 0x100bb2c5
mov eax, dword [ebp - 0x1a8]
add eax, 0xffffff38
cmp eax, 0xc
jae 0x100bba0e
movss xmm0, dword [ebx + 0xe774]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100bba0e
mov eax, dword [ebp - 0x1b8]
push dword [ebx + 4]
movzx eax, al
mov al, byte [eax + 0x10164ba0]
mov byte [ebp - 0x1a1], al
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [ebx]
add esp, 4
mov edi, eax
push dword [ebx + 4]
mov ecx, dword [ecx + 0x1c]
call ecx
xor edi, eax
add esp, 4
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [ebx]
add esp, 4
mov esi, eax
xor esi, edi
push dword [ebx + 4]
mov ecx, dword [ecx + 0x1c]
call ecx
mov dh, byte [ebp - 0x1a1]
xor eax, esi
mov dl, dh
add esp, 4
xor ecx, ecx
mov ah, byte [eax + 0x10164ca0]
mov al, dh
add al, al
add dl, al
shl dl, 5
nop dword [eax]
add ah, dl
add dl, dh
xor byte [ebp + ecx - 0x158], ah
inc ecx
cmp ecx, 0x144
jb 0x100bb1b0
mov eax, dword [ebp - 0x1a8]
mov edi, 0x4949
movsx edx, byte [eax + 0x1018be8c]
sub edx, 0x30
mov ecx, edx
and ecx, 0xfffffffe
movzx esi, byte [ebp + ecx - 0x157]
movzx eax, byte [ebp + ecx - 0x158]
cmp word [ebx + 0x6274], di
jne 0x100bb1fc
shl esi, 8
jmp 0x100bb1ff
shl eax, 8
or esi, eax
and edx, 1
movzx eax, byte [ebp + ecx - 0x156]
movd xmm0, esi
movzx esi, byte [ebp + ecx - 0x155]
cvtdq2ps xmm0, xmm0
movss dword [ebx + edx*4 + 0xe774], xmm0
cmp word [ebx + 0x6274], di
jne 0x100bb232
shl esi, 8
jmp 0x100bb235
shl eax, 8
or esi, eax
mov eax, edx
xor eax, 1
movd xmm0, esi
movzx esi, byte [ebp + ecx - 0x153]
cvtdq2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0xe774], xmm0
movzx eax, byte [ebp + ecx - 0x154]
cmp word [ebx + 0x6274], di
jne 0x100bb26a
shl esi, 8
jmp 0x100bb26d
shl eax, 8
or esi, eax
mov eax, edx
xor eax, 3
movd xmm0, esi
movzx esi, byte [ebp + ecx - 0x151]
cvtdq2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0xe774], xmm0
movzx eax, byte [ebp + ecx - 0x152]
cmp word [ebx + 0x6274], di
jne 0x100bb2a2
shl esi, 8
jmp 0x100bb2a5
shl eax, 8
mov edi, dword [ebp - 0x1a0]
or esi, eax
xor edx, 2
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [ebx + edx*4 + 0xe774], xmm0
jmp 0x100bba0e
cmp edi, 0x200
jne 0x100bb330
cmp esi, 3
jne 0x100bb2eb
mov ecx, ebx
call fcn.100a8910
mov ecx, ebx
call fcn.100a8910
mov dword [ebx + 0x65a8], eax
jmp 0x100bba0e
cmp esi, 4
jne 0x100bba0e
mov ecx, ebx
call fcn.100a88b0
mov ecx, ebx
movzx esi, ax
call fcn.100a88b0
movzx eax, ax
mov ecx, ebx
add esi, eax
call fcn.100a88b0
movzx eax, ax
mov ecx, ebx
add esi, eax
call fcn.100a88b0
movzx eax, ax
add eax, esi
shr eax, 2
mov dword [ebx + 0x65f8], eax
jmp 0x100bba0e
cmp edi, 0x201
jne 0x100bb346
cmp esi, 4
je 0x100bbc3c
jmp 0x100bba0e
cmp edi, 0x220
jne 0x100bb374
cmp esi, 0x35
jne 0x100bba0e
mov eax, dword [ebx]
push 1
push 0xe
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov ecx, ebx
call fcn.100abc40
jmp 0x100bba0e
cmp edi, 0x401
jne 0x100bb3b7
cmp esi, 4
jne 0x100bba0e
mov ecx, ebx
call fcn.100a8910
mov ecx, ebx
mov esi, eax
call fcn.100a8910
mov ecx, ebx
add esi, eax
call fcn.100a8910
mov ecx, ebx
add esi, eax
call fcn.100a8910
add eax, esi
shr eax, 2
mov dword [ebx + 0x65f8], eax
jmp 0x100bba0e
cmp edi, 0xe01
jne 0x100bb5ca
movsx eax, word [ebx + 0x6274]
mov dword [ebp - 0x15c], 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 - 0x1ac], 0x16
cmp esi, 0x2c
jbe 0x100bb5bb
mov eax, dword [ebx]
lea ecx, [ebp - 0x18c]
push 4
push 1
push ecx
push dword [ebx + 4]
mov dword [ebp - 0x18c], 0xffffffff
mov eax, dword [eax]
call eax
mov esi, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], si
jne 0x100bb457
movzx edi, byte [ebp - 0x189]
movzx eax, byte [ebp - 0x18a]
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x18b]
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x18c]
jmp 0x100bb47d
movzx edi, byte [ebp - 0x18c]
movzx eax, byte [ebp - 0x18b]
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x18a]
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x189]
shl edi, 8
or edi, eax
mov eax, dword [ebx]
push 1
push 0xe
push dword [ebx + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1a0], edi
mov dword [ebp - 0x19c], edi
call eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x190]
add esp, 0xc
mov dword [ebp - 0x190], 0xffffffff
mov eax, dword [eax]
push 4
push 1
push ecx
push dword [ebx + 4]
call eax
add esp, 0x10
cmp word [ebx + 0x6274], si
jne 0x100bb4f1
movzx ecx, byte [ebp - 0x18d]
movzx eax, byte [ebp - 0x18e]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x18f]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x190]
jmp 0x100bb517
movzx ecx, byte [ebp - 0x190]
movzx eax, byte [ebp - 0x18f]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x18e]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x18d]
shl ecx, 8
or ecx, eax
mov eax, dword [ebx]
lea esi, [ecx - 4]
cmp edi, 0x76a43207
jne 0x100bb58b
push 2
push 1
lea ecx, [ebp - 0x168]
mov word [ebp - 0x168], 0xffff
mov eax, dword [eax]
push ecx
push dword [ebx + 4]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb570
movzx ecx, byte [ebp - 0x167]
movzx eax, byte [ebp - 0x168]
shl ecx, 8
or ecx, eax
mov dword [ebx + 0x66c8], ecx
jmp 0x100bb599
movzx ecx, byte [ebp - 0x168]
movzx eax, byte [ebp - 0x167]
shl ecx, 8
or ecx, eax
mov dword [ebx + 0x66c8], ecx
jmp 0x100bb599
mov eax, dword [eax + 8]
push 1
push esi
push dword [ebx + 4]
call eax
add esp, 0xc
mov eax, dword [ebp - 0x1ac]
add eax, 0x16
add eax, esi
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x1ac], eax
add eax, 0x16
cmp eax, esi
jb 0x100bb400
mov ecx, dword [ebp - 0x15c]
mov word [ebx + 0x6274], cx
jmp 0x100bb5d0
mov ecx, dword [ebp - 0x15c]
cmp edi, 0xe80
jne 0x100bb65d
cmp esi, 0x100
jne 0x100bba14
cmp ecx, 7
jne 0x100bba14
mov eax, dword [ebx]
push 1
push 0x30
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov ecx, ebx
call fcn.100a88b0
movzx eax, ax
mov ecx, ebx
imul eax, eax, 0x1fc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191ec8]
mulss xmm0, dword [0x10191de8]
movss dword [ebx + 0xe774], xmm0
call fcn.100a88b0
movzx eax, ax
imul eax, eax, 0x17e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191ee8]
mulss xmm0, dword [0x10191de8]
jmp 0x100bba06
cmp edi, 0xf00
jne 0x100bb6bc
cmp ecx, 7
jne 0x100bba14
cmp esi, 0x266
jne 0x100bb68f
mov eax, dword [ebx]
push 1
push 0xb0
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x100bb932
cmp esi, 0x2de
je 0x100bb6a3
cmp esi, 0x5de
jne 0x100bbd25
mov eax, dword [ebx]
push 1
push 0x94
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
jmp 0x100bb932
cmp edi, 0x1011
jne 0x100bb6ce
cmp esi, 9
je 0x100bb6da
jmp 0x100bba14
cmp edi, 0x20400200
jne 0x100bb794
lea eax, [ebx + 0xe794]
mov dword [ebp - 0x1b0], 3
mov dword [ebp - 0x1ac], eax
mov esi, eax
mov edi, 3
nop word [eax + eax]
mov eax, dword [ebx]
lea ecx, [ebp - 0x16c]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x16c], 0xffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb73e
movzx ecx, byte [ebp - 0x16b]
movzx eax, byte [ebp - 0x16c]
jmp 0x100bb74c
movzx ecx, byte [ebp - 0x16c]
movzx eax, byte [ebp - 0x16b]
shl cx, 8
or cx, ax
movzx eax, cx
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191df8]
movss dword [esi], xmm0
add esi, 4
sub edi, 1
jne 0x100bb700
mov eax, dword [ebp - 0x1ac]
add eax, 0x10
sub dword [ebp - 0x1b0], 1
mov dword [ebp - 0x1ac], eax
jne 0x100bb6f0
mov edi, dword [ebp - 0x1a0]
cmp edi, 0x1012
je 0x100bb7a8
cmp edi, 0x20400600
jne 0x100bb829
cmp dword [ebp - 0x164], 4
jne 0x100bb829
mov dword [ebx + 0x65f8], 0
mov esi, 4
mov edi, 0x4949
mov eax, dword [ebx]
lea ecx, [ebp - 0x170]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x170], 0xffff
mov eax, dword [eax]
call eax
add esp, 0x10
cmp word [ebx + 0x6274], di
jne 0x100bb7fe
movzx ecx, byte [ebp - 0x16f]
movzx eax, byte [ebp - 0x170]
jmp 0x100bb80c
movzx ecx, byte [ebp - 0x170]
movzx eax, byte [ebp - 0x16f]
shl ecx, 8
or ecx, eax
lea eax, [ecx*4]
add dword [ebx + 0x65f8], eax
sub esi, 1
jne 0x100bb7c5
mov edi, dword [ebp - 0x1a0]
cmp edi, 0x1017
je 0x100bb839
cmp edi, 0x20400100
jne 0x100bb8a1
mov eax, dword [ebx]
lea ecx, [ebp - 0x174]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x174], 0xffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb877
movzx ecx, byte [ebp - 0x173]
movzx eax, byte [ebp - 0x174]
jmp 0x100bb885
movzx ecx, byte [ebp - 0x174]
movzx eax, byte [ebp - 0x173]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191df8]
movss dword [ebx + 0xe774], xmm0
cmp edi, 0x1018
je 0x100bb8b1
cmp edi, 0x20400100
jne 0x100bb919
mov eax, dword [ebx]
lea ecx, [ebp - 0x178]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x178], 0xffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb8ef
movzx ecx, byte [ebp - 0x177]
movzx eax, byte [ebp - 0x178]
jmp 0x100bb8fd
movzx ecx, byte [ebp - 0x178]
movzx eax, byte [ebp - 0x177]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191df8]
movss dword [ebx + 0xe77c], xmm0
cmp edi, 0x2011
jne 0x100bba0e
cmp dword [ebp - 0x164], 2
jne 0x100bba0e
mov eax, 0x4d4d
mov word [ebp - 0x17c], 0xffff
push 2
mov word [ebx + 0x6274], ax
lea ecx, [ebp - 0x17c]
mov eax, dword [ebx]
push 1
push ecx
push dword [ebx + 4]
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb97c
movzx ecx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x17c]
jmp 0x100bb98a
movzx ecx, byte [ebp - 0x17c]
movzx eax, byte [ebp - 0x17b]
shl ecx, 8
or ecx, eax
mov word [ebp - 0x180], 0xffff
push 2
push 1
movd xmm0, ecx
lea ecx, [ebp - 0x180]
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [0x10191df8]
movss dword [ebx + 0xe774], xmm0
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bb9e4
movzx ecx, byte [ebp - 0x17f]
movzx eax, byte [ebp - 0x180]
jmp 0x100bb9f2
movzx ecx, byte [ebp - 0x180]
movzx eax, byte [ebp - 0x17f]
shl ecx, 8
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10191df8]
movss dword [ebx + 0xe77c], xmm0
mov ecx, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x160]
mov eax, edi
or eax, 0x70
cmp eax, 0x2070
jne 0x100bbac7
cmp ecx, 4
jne 0x100bbac7
mov eax, dword [ebx]
push ecx
push 1
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x194], 0xffffffff
mov eax, dword [eax]
push ecx
push dword [ebx + 4]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bba89
movzx edx, byte [ebp - 0x191]
movzx eax, byte [ebp - 0x192]
shl edx, 8
or edx, eax
movzx eax, byte [ebp - 0x193]
shl edx, 8
or edx, eax
movzx eax, byte [ebp - 0x194]
jmp 0x100bbaaf
movzx edx, byte [ebp - 0x194]
movzx eax, byte [ebp - 0x193]
shl edx, 8
or edx, eax
movzx eax, byte [ebp - 0x192]
shl edx, 8
or edx, eax
movzx eax, byte [ebp - 0x191]
mov ecx, dword [ebx]
shl edx, 8
or edx, eax
push 0
lea eax, [edx + esi]
push eax
push dword [ebx + 4]
mov eax, dword [ecx + 8]
call eax
add esp, 0xc
cmp edi, 0x2010
jne 0x100bbaeb
cmp dword [ebp - 0x15c], 7
je 0x100bbd25
mov dword [ebx + 0x2e7fc], 0x100b08b0
jmp 0x100bbd25
cmp edi, 0x2020
jne 0x100bbb0e
push 0x102
push 0x101
mov edx, esi
mov ecx, ebx
call fcn.100ba3a0
add esp, 8
jmp 0x100bbd25
cmp edi, 0x2040
jne 0x100bbb28
push edi
mov edx, esi
mov ecx, ebx
call fcn.100ba520
add esp, 4
jmp 0x100bbd25
cmp edi, 0xb028
jne 0x100bbbe1
mov eax, dword [ebx]
lea ecx, [ebp - 0x198]
push 4
push 1
push ecx
push dword [ebx + 4]
mov dword [ebp - 0x198], 0xffffffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [ebx + 0x6274], ax
jne 0x100bbb8b
movzx ecx, byte [ebp - 0x195]
movzx eax, byte [ebp - 0x196]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x197]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x198]
jmp 0x100bbbb1
movzx ecx, byte [ebp - 0x198]
movzx eax, byte [ebp - 0x197]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x196]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x195]
shl ecx, 8
or ecx, eax
mov eax, dword [ebx]
push 0
push ecx
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov edx, esi
mov ecx, ebx
push 0x89
push 0x88
call fcn.100ba3a0
add esp, 8
jmp 0x100bbd25
cmp edi, 0x4001
jne 0x100bbd25
mov eax, dword [ebp - 0x164]
cmp eax, 0x1f4
jbe 0x100bbd25
cmp eax, 0x246
jne 0x100bbc0c
mov ecx, 0x32
jmp 0x100bbc2c
cmp eax, 0x28d
jne 0x100bbc1a
mov ecx, 0x44
jmp 0x100bbc2c
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
mov edi, 0x4949
mov eax, dword [ebx]
lea ecx, [ebp - 0x184]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x184], 0xffff
mov eax, dword [eax]
call eax
add esp, 0x10
cmp word [ebx + 0x6274], di
jne 0x100bbc7c
movzx ecx, byte [ebp - 0x183]
movzx eax, byte [ebp - 0x184]
jmp 0x100bbc8a
movzx ecx, byte [ebp - 0x184]
movzx eax, byte [ebp - 0x183]
shl ecx, 8
or ecx, eax
mov eax, esi
shr eax, 1
xor eax, esi
inc esi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0xe774], xmm0
cmp esi, 4
jb 0x100bbc43
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
mov eax, dword [ebx]
lea ecx, [ebp - 0x188]
push 2
push 1
push ecx
push dword [ebx + 4]
mov word [ebp - 0x188], 0xffff
mov eax, dword [eax]
call eax
add esp, 0x10
cmp word [ebx + 0x6274], di
jne 0x100bbcf9
movzx ecx, byte [ebp - 0x187]
movzx eax, byte [ebp - 0x188]
jmp 0x100bbd07
movzx ecx, byte [ebp - 0x188]
movzx eax, byte [ebp - 0x187]
shl cx, 8
or cx, ax
mov eax, esi
shr eax, 1
xor eax, esi
movzx ecx, cx
inc esi
mov word [ebx + eax*2 + 0xe76c], cx
cmp esi, 4
jb 0x100bbcc0
mov eax, dword [ebx]
push 0
push dword [ebp - 0x1bc]
push dword [ebx + 4]
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x1c0]
add esp, 0xc
mov esi, dword [ebp - 0x160]
test eax, eax
jne 0x100ba916
jmp 0x100bbe4b
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 0x100bbe4b
nop dword [eax + eax]
cmp eax, 0x4000
jae 0x100bbe4b
mov eax, dword [ebp - 0x1b0]
mov esi, edi
mov edi, dword [ebp - 0x19c]
mov ecx, ebx
mov dword [ebp - 0x19c], eax
call fcn.100a88b0
cmp dword [ebp - 0x19c], 0x100
movzx eax, ax
mov dword [ebp - 0x1b0], eax
jne 0x100bbe32
cmp eax, 0x100
jne 0x100bbe32
lea eax, [esi - 0x101]
cmp eax, 0x17e
ja 0x100bbe32
lea eax, [edi - 0x101]
cmp eax, 0x17e
ja 0x100bbe32
movd xmm0, esi
mov eax, edi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
shr eax, 0x1f
mov dword [ebx + 0xe778], 0x43800000
mov dword [ebx + 0xe780], 0x43800000
addsd xmm0, qword [esi*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe774], xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe77c], xmm0
mov eax, dword [ebx]
push dword [ebx + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
cmp eax, dword [ebx + 0x65c0]
jl 0x100bbd80
mov eax, dword [ebp - 0x1c4]
mov word [ebx + 0x6274], ax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret