Function at 0x10122184
Capabilities:
Check http status code
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x98
push esi
push edi
mov edi, ecx
mov dword [esp + 0x58], 0
xor eax, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x44], eax
lea edx, [esp + 0x34]
mov dword [esp + 0x4c], eax
mov ecx, dword [edi + 0x49280]
movzx eax, word [edi + 0x492d8]
push 0xa
mov dword [esp + 0x8c], eax
mov eax, dword [ecx]
push 1
push edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x70], 0
call dword [eax + 8]
mov ecx, str.Nikon
lea eax, [esp + 0x34]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121a30
test dl, dl
je 0x10121a2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121a30
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121a10
xor eax, eax
jmp 0x10121a35
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10121a8a
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, eax
mov ecx, edi
mov dword [esp + 0xc], esi
call fcn.101120a0
mov ecx, edi
mov word [edi + 0x492d8], ax
call fcn.101120a0
cmp ax, 0x2a
jne 0x10122878
mov ecx, edi
call fcn.1010f760
mov ecx, dword [edi + 0x49280]
add eax, 0xfffffff8
push 1
push 0
push eax
mov edx, dword [ecx]
call dword [edx + 0xc]
jmp 0x10121dcc
mov ecx, str.OLYMPUS
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121ab3
test dl, dl
je 0x10121aaf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121ab3
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121a93
xor eax, eax
jmp 0x10121ab8
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d8b
mov ecx, 0x1029f484
lea eax, [esp + 0x34]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121af0
test dl, dl
je 0x10121aec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121af0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121ad0
xor eax, eax
jmp 0x10121af5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d8b
push 7
lea esi, [edi + 0xb8]
push str.SAMSUNG
push esi
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10121b21
cmp dword [ebp + 0x10], 1
je 0x10121d8b
push 4
lea eax, [esp + 0x38]
push str.SONY
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10121d65
mov ecx, str.Panasonic
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121b66
test dl, dl
je 0x10121b62
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121b66
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121b46
xor eax, eax
jmp 0x10121b6b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d65
push 8
lea eax, [esp + 0x38]
push str.FUJIFILM
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10121ba0
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
lea esi, [eax - 0xa]
jmp 0x10121d68
mov ecx, str.OLYMP
lea eax, [esp + 0x34]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121bd0
test dl, dl
je 0x10121bcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121bd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121bb0
xor eax, eax
jmp 0x10121bd5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d4b
mov ecx, str.LEICA
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121c06
test dl, dl
je 0x10121c02
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121c06
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121be6
xor eax, eax
jmp 0x10121c0b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d4b
mov ecx, str.Ricoh
lea eax, [esp + 0x34]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121c40
test dl, dl
je 0x10121c3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121c40
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121c20
xor eax, eax
jmp 0x10121c45
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d4b
mov ecx, str.EPSON
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121c76
test dl, dl
je 0x10121c72
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121c76
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121c56
xor eax, eax
jmp 0x10121c7b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d4b
mov ecx, 0x1029f4b8
lea eax, [esp + 0x34]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121cb0
test dl, dl
je 0x10121cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121c90
xor eax, eax
jmp 0x10121cb5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d2e
mov ecx, 0x1029f4bc
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121ce2
test dl, dl
je 0x10121cde
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121ce2
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121cc2
xor eax, eax
jmp 0x10121ce7
sbb eax, eax
or eax, 1
test eax, eax
je 0x10121d2e
mov ecx, dword [edi + 0x49280]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffff6
mov eax, dword [ecx]
call dword [eax + 0xc]
push 7
push str.SAMSUNG
push esi
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10121d3f
cmp dword [ebp + 0x10], 2
jne 0x10121d3f
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, eax
mov dword [esp + 0xc], esi
jmp 0x10121dcc
mov ecx, dword [edi + 0x49280]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffc
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], esi
jmp 0x10121dcc
mov ecx, dword [edi + 0x49280]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], esi
jmp 0x10121dcc
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], esi
mov ecx, dword [edi + 0x49280]
mov eax, 0x4949
push 1
mov word [edi + 0x492d8], ax
push 0
mov eax, dword [ecx]
push 2
call dword [eax + 0xc]
jmp 0x10121dcc
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [edi + 0x49280]
push 1
push 0xffffffffffffffff
lea esi, [eax - 0xa]
mov eax, dword [ecx]
push 0xfffffffffffffffe
mov dword [esp + 0x18], esi
call dword [eax + 0xc]
mov ecx, edi
call fcn.101120a0
cmp byte [esp + 0x34], 0x4f
mov word [edi + 0x492d8], ax
jne 0x10121dcc
mov ecx, edi
call fcn.101120a0
mov ecx, edi
call fcn.101120a0
movzx ecx, ax
cmp ecx, 0x3e8
ja 0x10122886
movzx edx, word [edi + 0x492d8]
mov dword [esp + 0x84], edx
test ecx, ecx
je 0x10122878
shl dword [ebp + 0xc], 0x10
nop dword [eax]
lea eax, [esp + 0x6c]
mov word [edi + 0x492d8], dx
push eax
lea eax, [esp + 0x20]
dec ecx
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x88], ecx
push eax
lea eax, [esp + 0x6c]
mov ecx, edi
push eax
push esi
call fcn.1011d640
mov esi, dword [esp + 0x60]
lea eax, [edi + 0xb8]
or esi, dword [ebp + 0xc]
mov ecx, str.Canon
mov dword [esp + 0x60], esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10121e61
test dl, dl
je 0x10121e5d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10121e61
add eax, 2
add ecx, 2
test dl, dl
jne 0x10121e41
xor eax, eax
jmp 0x10121e66
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10122154
cmp esi, 1
jne 0x10121f4a
mov ecx, dword [edi + 0x49280]
push esi
push 0
push 0x2c
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.101120a0
movzx eax, ax
mov ecx, edi
cdq
mov dword [edi + 0x318], eax
mov dword [edi + 0x31c], edx
call fcn.101120a0
movzx eax, ax
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x414], xmm0
call fcn.101120a0
movzx eax, ax
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x410], xmm0
call fcn.101120a0
mov word [edi + 0x5e0], ax
cmp ax, si
je 0x10121f13
movss xmm0, dword [edi + 0x414]
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
movss dword [edi + 0x414], xmm0
movss xmm0, dword [edi + 0x410]
divss xmm0, xmm1
movss dword [edi + 0x410], xmm0
mov ecx, edi
call fcn.101120a0
movzx eax, ax
push eax
call fcn.10129a90
add esp, 4
mov ecx, edi
fstp dword [edi + 0x428]
call fcn.101120a0
movzx eax, ax
push eax
call fcn.10129a90
fstp dword [edi + 0x42c]
add esp, 4
jmp case.0x10122aa3.537920004
cmp esi, 2
jne 0x10121fad
mov ecx, edi
call fcn.101120a0
mov ecx, edi
mov word [edi + 0x3ec], ax
call fcn.101120a0
movzx eax, ax
movd xmm1, eax
movzx eax, word [edi + 0x5e0]
cvtdq2ps xmm1, xmm1
movss dword [edi + 0x430], xmm1
cmp ax, 1
je case.0x10122aa3.537920004
mov esi, dword [esp + 0xc]
test ax, ax
je 0x10123b74
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [edi + 0x430], xmm1
jmp 0x10123b74
cmp esi, 4
jne 0x10121fe1
mov ecx, dword [edi + 0x49280]
push 1
push 0
push 0x2a
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.101120a0
movzx eax, ax
push eax
call fcn.10129a90
fstp dword [edi + 0x434]
add esp, 4
jmp case.0x10122aa3.537920004
cmp esi, 0xd
jne 0x1012200e
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
mov dword [esp + 0x68], esi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
push 1
push esi
push eax
mov edx, dword [ecx]
mov dword [esp + 0x74], eax
call dword [edx + 8]
jmp case.0x10122aa3.537920004
cmp esi, 0x10
jne 0x10122049
mov ecx, edi
call fcn.1010f760
push eax
mov ecx, edi
mov dword [edi + 0x492cc], eax
call fcn.101104e0
cmp dword [esp + 0x64], 0
je case.0x10122aa3.537920004
push dword [esp + 0x68]
mov ecx, edi
push dword [edi + 0x492cc]
call fcn.10110600
jmp case.0x10122aa3.537920004
cmp esi, 0x95
jne case.0x10122aa3.537920004
cmp byte [edi + 0x320], 0
lea esi, [edi + 0x320]
jne case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
push 1
push 2
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, 3
mov word [edi + 0x3a2], ax
mov al, byte [esi]
push 1
cmp al, 0x41
jge 0x101220a5
mov ecx, dword [edi + 0x49280]
lea eax, [edi + 0x322]
push 0x3e
push eax
mov edx, dword [ecx]
call dword [edx + 8]
jmp case.0x10122aa3.537920004
mov byte [edi + 0x3ee], al
lea edx, [esp + 0x58]
mov al, byte [edi + 0x321]
mov byte [edi + 0x3ef], al
mov ecx, dword [edi + 0x49280]
push 2
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ax, word [esp + 0x54]
cmp al, 0x2d
jne 0x10122126
cmp ah, 0x53
je 0x101220e1
cmp ah, 0x45
je 0x101220e1
cmp ah, 0x4d
jne 0x10122126
mov byte [edi + 0x3f0], 0x2d
mov byte [edi + 0x322], 0x2d
mov byte [edi + 0x3f1], ah
mov byte [edi + 0x323], ah
mov byte [edi + 0x324], 0x20
cmp ah, 0x53
jne 0x10122113
mov dword [edi + 0x3a0], 0x40001
jmp 0x10122139
cmp ah, 0x4d
jne 0x10122139
mov eax, 5
mov word [edi + 0x3a2], ax
jmp 0x10122139
mov byte [edi + 0x322], 0x20
mov byte [edi + 0x323], al
mov byte [edi + 0x324], ah
mov ecx, dword [edi + 0x49280]
lea eax, [edi + 0x325]
push 1
push 0x3a
push eax
mov edx, dword [ecx]
call dword [edx + 8]
jmp case.0x10122aa3.537920004
push 4
lea eax, [edi + 0xb8]
push str.FUJI
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101221dc
add esi, 0xffffebfc
cmp esi, 3
ja case.0x10122aa3.537920004
jmp dword [esi*4 + 0x10123ba4]
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x410]
jmp case.0x10122aa3.537920004
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x414]
jmp case.0x10122aa3.537920004
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x418]
jmp case.0x10122aa3.537920004
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x41c]
jmp case.0x10122aa3.537920004
push 5
lea eax, [edi + 0xb8]
push str.LEICA
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
jne 0x101223cb
cmp esi, 0x303
jne 0x1012222a
cmp dword [esp + 0x24], 4
je case.0x10122aa3.537920004
lea eax, [edi + 0x320]
mov ecx, dword [edi + 0x49280]
push 1
push dword [esp + 0x20]
mov edx, dword [ecx]
push eax
call dword [edx + 8]
jmp case.0x10122aa3.537920004
cmp esi, 0x3405
je 0x101222ef
cmp esi, 0x310
je 0x101222ef
cmp esi, 0x34003405
je 0x101222ef
cmp esi, 0x313
je 0x1012225e
cmp esi, 0x34003406
jne 0x101222cd
movss xmm0, dword [edi + 0x434]
movss xmm1, dword [0x102ab9f8]
cvtps2pd xmm0, xmm0
andps xmm0, xmmword [0x103d8770]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x101222cd
mov eax, dword [esp + 0x24]
cmp eax, 0xa
je 0x1012228f
cmp eax, 5
jne 0x101222cd
push eax
mov ecx, edi
call fcn.10112160
mov esi, dword [esp + 0xc]
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
movss dword [edi + 0x434], xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x102abaf8]
jbe 0x10123b74
mov dword [edi + 0x434], 0
jmp 0x10123b74
cmp esi, 0x3400
mov esi, dword [esp + 0xc]
jne 0x10123b74
push 0x3400
push esi
mov ecx, edi
call fcn.1011d770
jmp 0x10123b74
mov ecx, edi
call fcn.1010f760
mov dword [edi + 0x318], eax
mov ecx, eax
and eax, 0xfffffffc
mov dword [edi + 0x31c], 0
mov edx, dword [edi + 0x31c]
and ecx, 3
shld edx, eax, 6
shl eax, 6
or eax, ecx
mov dword [edi + 0x31c], edx
mov dword [edi + 0x318], eax
and eax, edx
cmp eax, 0xffffffff
je case.0x10122aa3.537920004
cmp byte [edi + 0xf8], 0x4d
lea esi, [edi + 0xf8]
je 0x1012239d
push 7
push str.LEICA_M
push esi
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x1012239d
cmp byte [esi], 0x53
je 0x10122374
push 7
push str.LEICA_S
push esi
call fcn.1020f800
add esp, 0xc
test eax, eax
jne case.0x10122aa3.537920004
mov esi, dword [esp + 0xc]
mov eax, 0x10
mov word [edi + 0x3aa], ax
cmp byte [edi + 0x320], 0
je 0x10123b74
mov word [edi + 0x3a2], ax
jmp 0x10123b74
mov eax, dword [edi + 0x318]
mov ecx, 0xe
or eax, dword [edi + 0x31c]
mov esi, dword [esp + 0xc]
mov word [edi + 0x3aa], cx
je 0x10123b74
mov word [edi + 0x3a2], cx
jmp 0x10123b74
push 5
lea eax, [edi + 0xb8]
push str.NIKON
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x1012288e
cmp esi, 0x1d
jne 0x10122457
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov esi, eax
test esi, esi
je case.0x10122aa3.537920004
cmp esi, 0xffffffff
je case.0x10122aa3.537920004
push esi
call fcn.101fc6c3
add esp, 4
test eax, eax
je 0x10122420
add esi, 0xffffffd0
jmp 0x10122431
mov eax, 0xcccccccd
mul esi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
mov ecx, dword [esp + 0x58]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0x58], ecx
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov esi, eax
test esi, esi
jne 0x10122405
jmp case.0x10122aa3.537920004
cmp esi, 0x82
jne 0x1012247c
mov ecx, dword [edi + 0x49280]
lea eax, [edi + 0x560]
push 1
push dword [esp + 0x20]
mov edx, dword [ecx]
push eax
call dword [edx + 8]
jmp case.0x10122aa3.537920004
cmp esi, 0x83
jne 0x1012251b
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov byte [edi + 0x307], al
test al, 1
jne 0x101224a8
mov word [edi + 0x3ee], 0x4641
mov al, byte [edi + 0x307]
test al, 2
je 0x101224c9
and al, 4
mov byte [edi + 0x3ff], 0x20
neg al
sbb al, al
and al, 3
add al, 0x44
mov byte [edi + 0x3fe], al
test byte [edi + 0x307], 8
je 0x101224db
mov word [edi + 0x400], 0x5256
mov cl, byte [edi + 0x307]
test cl, 0x10
je 0x101224f2
mov eax, 7
mov word [edi + 0x3a2], ax
test cl, 0x20
je 0x1012250d
mov eax, dword [str.FT_1]
mov dword [edi + 0x4d8], eax
mov al, byte [0x1029f4dc]
mov byte [edi + 0x4dc], al
and cl, 0xdf
mov byte [edi + 0x307], cl
jmp case.0x10122aa3.537920004
cmp esi, 0x84
jne 0x10122564
mov esi, dword [esp + 0x24]
mov ecx, edi
push esi
call fcn.10112160
fstp dword [edi + 0x410]
push esi
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x414]
push esi
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x418]
push esi
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x41c]
jmp case.0x10122aa3.537920004
cmp esi, 0x8b
jne 0x101225f2
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x49280]
mov byte [esp + 0x17], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
mov ecx, dword [edi + 0x49280]
mov byte [esp + 0x33], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
mov esi, dword [esp + 0xc]
test al, al
je 0x10123b74
movzx ecx, al
xor edx, edx
mov eax, 0xc
div ecx
movzx ecx, byte [esp + 0x33]
movzx edx, al
movzx eax, byte [esp + 0x17]
imul edx, ecx
movzx ecx, dl
imul ecx, eax
movzx eax, cl
mov byte [edi + 0x305], cl
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x102abb50]
movss dword [edi + 0x440], xmm0
jmp 0x10123b74
cmp esi, 0x98
jne 0x10122720
mov esi, 4
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esp + 0x40]
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [eax + edx*2]
mov dword [esp + 0x40], edx
sub esi, 1
jne 0x10122603
cmp edx, 0x190
ja 0x1012269a
je 0x1012268f
lea eax, [edx - 0x64]
cmp eax, 0x68
ja case.0x10122643.102
movzx eax, byte [eax + 0x10123bc4]
jmp dword [eax*4 + 0x10123bb4]
mov eax, 9
mov ecx, 6
mov dword [esp + 0x20], eax
mov word [edi + 0x3a2], cx
jmp 0x101226d2
mov eax, 0xf
mov ecx, 6
mov dword [esp + 0x20], eax
mov word [edi + 0x3a2], cx
jmp 0x101226d2
mov eax, 0x10
mov ecx, 6
mov dword [esp + 0x20], eax
mov word [edi + 0x3a2], cx
jmp 0x101226d2
mov eax, 0x1cb
mov dword [esp + 0x20], eax
jmp 0x101226d2
mov eax, edx
sub eax, 0x191
je 0x101226c3
sub eax, 1
je 0x101226b8
sub eax, 1
jne case.0x10122643.102
mov eax, 0x36f
mov dword [esp + 0x20], eax
jmp 0x101226d2
mov eax, 0x1fd
mov dword [esp + 0x20], eax
jmp 0x101226d2
mov eax, 0x24e
mov dword [esp + 0x20], eax
jmp 0x101226d2
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
mov esi, eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x20], esi
mov edx, dword [ecx]
push esi
call dword [edx + 8]
cmp dword [esp + 0x40], 0xc9
jae case.0x10122aa3.537920004
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x10122aa3.537920004
push eax
push esi
mov ecx, edi
call fcn.10110ea0
xor esi, esi
mov dword [esp + 0x20], esi
jmp case.0x10122aa3.537920004
cmp esi, 0xa7
jne 0x101227de
mov esi, dword [edi + 0x49280]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x10], eax
mov edx, dword [edx + 0x18]
call edx
mov ecx, dword [edi + 0x49280]
xor byte [esp + 0x10], al
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x49280]
xor al, byte [esp + 0x10]
mov byte [esp + 0x17], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
xor al, byte [esp + 0x17]
cmp dword [esp + 0x40], 0xc8
jbe case.0x10122aa3.537920004
mov esi, dword [esp + 0x20]
test esi, esi
je case.0x10122aa3.537920004
mov ecx, dword [esp + 0x58]
movzx ecx, cl
movzx eax, al
mov dh, byte [ecx + 0x1029dbb8]
xor ecx, ecx
mov ah, byte [eax + 0x1029dcb8]
test esi, esi
mov esi, dword [esp + 0x18]
je 0x101227c5
mov al, dh
mov dl, dh
add al, al
add dl, al
shl dl, 5
add ah, dl
add dl, dh
xor byte [esi + ecx], ah
inc ecx
cmp ecx, dword [esp + 0x20]
jb 0x101227b7
push dword [esp + 0x20]
mov ecx, edi
push esi
call fcn.10110ea0
mov dword [esp + 0x20], 0
jmp case.0x10122aa3.537920004
cmp esi, 0x25
jne case.0x10122aa3.537920004
movss xmm0, dword [edi + 0x24a58]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1012280c
ucomiss xmm0, dword [0x103d7fbc]
lahf
test ah, 0x44
jp case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
lea edx, [esp + 0x17]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
movzx eax, byte [esp + 0x17]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x102abae0]
subsd xmm0, qword [0x103d7dd0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
fmul qword [0x103d7e88]
add esp, 8
fstp qword [esp + 0x70]
cvttsd2si eax, qword [esp + 0x70]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x24a58], xmm0
mov eax, dword [esp + 0x88]
mov word [edi + 0x492d8], ax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 7
lea eax, [edi + 0xb8]
push str.OLYMPUS
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10122c4f
cmp esi, 0x2010
jne 0x10122904
mov ecx, dword [edi + 0x49280]
push eax
mov eax, dword [esp + 0x70]
add eax, 0xfffffffc
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0xc]
mov eax, dword [edi + 0x49280]
mov ecx, edi
push 0
mov esi, dword [eax]
call fcn.1010f760
add eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x49280]
push 0
push eax
call dword [esi + 0xc]
push dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, edi
push 0x2010
push esi
call fcn.101219a0
jmp 0x10123b74
cmp esi, 0x20100201
ja 0x10122a82
je 0x101229ca
cmp esi, 0x207
je 0x10122932
cmp esi, 0x1002
je 0x10122986
cmp esi, 0x20100100
jne case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
lea edx, [esp + 0x70]
push 1
push dword [esp + 0x20]
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, dword [esp + 0x71]
movzx ecx, byte [esp + 0x70]
test al, al
je 0x10122979
lea edx, [esp + 0x71]
nop dword [eax]
movzx eax, al
lea edx, [edx + 1]
shl ecx, 8
or ecx, eax
mov al, byte [edx]
mov byte [esp + 0x7c], al
test al, al
mov eax, dword [esp + 0x7c]
jne 0x10122960
push ecx
mov ecx, edi
call fcn.101111e0
jmp case.0x10122aa3.537920004
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
sub esp, 8
mulsd xmm0, qword [0x103d7c40]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
fstp dword [edi + 0x434]
add esp, 8
jmp case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x50]
cdq
mov edi, eax
mov eax, edx
shld eax, edi, 8
mov ecx, dword [ecx + 0x49280]
mov dword [esp + 0x10], eax
shl edi, 8
mov esi, dword [ecx]
mov esi, dword [esi + 0x18]
call esi
cdq
mov esi, eax
mov eax, edx
or eax, dword [esp + 0x10]
or esi, edi
mov edi, dword [esp + 0x50]
shld eax, esi, 8
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x49280]
shl esi, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cdq
or eax, esi
mov dword [edi + 0x3a0], 0x80008
or edx, dword [esp + 0x10]
mov dword [edi + 0x318], eax
mov ecx, edx
mov dword [edi + 0x31c], edx
jne 0x10122a52
cmp eax, 0x20000
jb 0x10122a61
test ecx, ecx
jne 0x10122a61
cmp eax, 0x4ffff
jbe case.0x10122aa3.537920004
mov esi, dword [esp + 0xc]
and eax, 0x10
or eax, 0
je 0x10123b74
mov eax, 9
mov word [edi + 0x3a2], ax
jmp 0x10123b74
cmp esi, 0x20100301
ja 0x10122c25
je 0x10122bde
add esi, 0xdfeffdfd
cmp esi, 7
ja case.0x10122aa3.537920004
jmp dword [esi*4 + 0x10123c30]
mov ecx, edi
call fcn.101120a0
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102ab9f0]
movss dword [esp], xmm0
movsd xmm0, qword [0x103d7d60]
call fcn.10209710
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10129bc0
fstp dword [edi + 0x418]
add esp, 8
jmp case.0x10122aa3.537920004
mov ecx, edi
call fcn.101120a0
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102ab9f0]
movss dword [esp], xmm0
movsd xmm0, qword [0x103d7d60]
call fcn.10209710
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10129bc0
fstp dword [edi + 0x41c]
add esp, 8
jmp case.0x10122aa3.537920004
mov ecx, edi
call fcn.101120a0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x410], xmm0
jmp case.0x10122aa3.537920004
mov ecx, edi
call fcn.101120a0
mov esi, dword [esp + 0xc]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x102abb74]
movss dword [edi + 0x414], xmm0
jbe 0x10123b74
mov eax, dword [edi + 0x410]
mov dword [edi + 0x414], eax
jmp 0x10123b74
mov ecx, edi
call fcn.101120a0
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102ab9f0]
movss dword [esp], xmm0
movsd xmm0, qword [0x103d7d60]
call fcn.10209710
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10129bc0
fstp dword [edi + 0x438]
add esp, 8
jmp case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x49280]
shl eax, 8
cdq
mov dword [edi + 0x448], eax
mov dword [edi + 0x44c], edx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cdq
or dword [edi + 0x448], eax
or dword [edi + 0x44c], edx
jmp case.0x10122aa3.537920004
cmp esi, 0x20100303
je 0x10122c44
cmp esi, 0x20100403
jne case.0x10122aa3.537920004
lea eax, [edi + 0x560]
jmp 0x10122213
lea eax, [edi + 0x450]
jmp 0x10122213
push 6
lea eax, [edi + 0xb8]
push str.PENTAX
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x1012362d
push 6
lea eax, [edi + 0xf8]
push str.PENTAX
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x1012362d
push 7
lea eax, [edi + 0xb8]
push str.SAMSUNG
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10122caf
cmp dword [ebp + 0x10], 1
je 0x1012362d
push 7
lea eax, [edi + 0xb8]
push str.SAMSUNG
push eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10122e16
cmp dword [ebp + 0x10], 2
jne 0x10122e16
cmp esi, 2
jne 0x10122d42
mov ecx, edi
call fcn.1010f760
cmp eax, 0x2000
jne 0x10122cfb
mov eax, 0x11
mov word [edi + 0x3aa], ax
jmp case.0x10122aa3.537920004
push 7
lea eax, [edi + 0xf8]
push str.NX_mini
push eax
call fcn.10201aa0
mov esi, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x10122d2a
mov eax, 0x13
mov word [edi + 0x3aa], ax
jmp 0x10123b74
mov eax, 0x63
mov word [edi + 0x3aa], ax
mov word [edi + 0x3a2], ax
jmp 0x10123b74
cmp esi, 3
jne 0x10122d5f
mov ecx, edi
call fcn.1010f760
mov dword [edi + 0x492cc], eax
mov dword [edi + 0x3a4], eax
jmp case.0x10122aa3.537920004
cmp esi, 0xa003
jne 0x10122d9b
mov ecx, edi
call fcn.101120a0
mov esi, dword [esp + 0xc]
movzx eax, ax
cdq
mov dword [edi + 0x318], eax
or eax, edx
mov dword [edi + 0x31c], edx
je 0x10123b74
mov eax, 0x11
mov word [edi + 0x3a2], ax
jmp 0x10123b74
cmp esi, 0xa019
jne 0x10122db9
push dword [esp + 0x24]
mov ecx, edi
call fcn.10112160
fstp dword [edi + 0x434]
jmp case.0x10122aa3.537920004
cmp esi, 0xa01a
jne case.0x10122aa3.537920004
mov ecx, edi
call fcn.1010f760
movss xmm1, dword [0x103d7f48]
mov esi, dword [esp + 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
comiss xmm1, xmm0
movss dword [edi + 0x5e4], xmm0
jbe 0x10123b74
mulss xmm0, xmm1
movss dword [edi + 0x5e4], xmm0
jmp 0x10123b74
push 4
lea eax, [edi + 0xb8]
push str.SONY
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x10122edc
push 6
lea eax, [edi + 0xb8]
push str.Konica
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x10122edc
push 7
lea eax, [edi + 0xb8]
push str.Minolta
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x10122edc
push 0xa
lea eax, [edi + 0xb8]
push str.Hasselblad
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
jne case.0x10122aa3.537920004
push 7
lea eax, [edi + 0xf8]
push str.Stellar
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x10122edc
push 5
lea eax, [edi + 0xf8]
push str.Lunar
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
je 0x10122edc
push 2
lea eax, [edi + 0xf8]
push 0x1029f518
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
jne case.0x10122aa3.537920004
cmp esi, 0xb001
jne 0x10122f5d
mov ecx, edi
call fcn.101120a0
movzx eax, ax
mov ecx, edi
push eax
mov dword [edi + 0x492cc], eax
call fcn.101116e0
cmp word [esp + 0x44], 0
je 0x10122f24
push dword [edi + 0x492cc]
mov esi, dword [esp + 0x60]
mov ecx, edi
push esi
call fcn.10111d30
push esi
mov ecx, edi
call fcn.1012fed0
xor eax, eax
mov dword [esp + 0x44], eax
cmp word [esp + 0x4c], 0
je case.0x10122aa3.537920004
cmp word [edi + 0x3aa], 2
jne 0x10122f45
push dword [esp + 0x48]
mov ecx, edi
call fcn.10112010
push dword [esp + 0x48]
mov ecx, edi
call fcn.1012fed0
mov dword [esp + 0x4c], 0
jmp case.0x10122aa3.537920004
cmp esi, 0x10
jne 0x10123274
push 9
push 0x1029f51c
lea esi, [edi + 0xf8]
push esi
call fcn.1020f800
add esp, 0xc
test eax, eax
je case.0x10122aa3.537920004
push 6
push str.NEX_5C
push esi
call fcn.1020f800
add esp, 0xc
test eax, eax
je case.0x10122aa3.537920004
push 4
lea eax, [edi + 0xb8]
push str.SONY
push eax
call fcn.1020f800
add esp, 0xc
test eax, eax
jne case.0x10122aa3.537920004
mov eax, dword [esp + 0x1c]
cmp eax, 0x170
je 0x10122fe5
cmp eax, 0x1566
je 0x10122fe5
cmp eax, 0x1582
je 0x10122fe5
cmp eax, 0x17e6
je 0x10122fe5
cmp eax, 0x3c00
jne case.0x10122aa3.537920004
push eax
mov ecx, edi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
mov esi, eax
push 1
push dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov eax, dword [ecx]
push esi
call dword [eax + 8]
cmp dword [esi], 0xffffffff
jne 0x10123014
cmp dword [esi + 4], 0xffffffff
je 0x10123267
cmp dword [esi], 0
jne 0x10123023
cmp dword [esi + 4], 0
je 0x10123267
mov eax, dword [esp + 0x1c]
cmp eax, 0x170
je 0x1012314f
cmp eax, 0x1566
je 0x1012314f
movzx eax, byte [esi + 6]
mov dl, byte [esi + 2]
mov cl, byte [esi + 1]
push eax
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 4]
push eax
movzx eax, byte [esi + 3]
push eax
push edx
push ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], ecx
call fcn.1012a260
add esp, 0x18
test ax, ax
je 0x10123267
mov ecx, dword [esp + 0x10]
mov al, cl
or al, dl
je 0x101230a8
push ecx
call fcn.10129ac0
push dword [esp + 0x2c]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x410], xmm0
mov dl, byte [esi + 3]
mov cl, byte [esi + 4]
mov al, dl
or al, cl
mov dword [esp + 0x28], ecx
je 0x101230e4
push edx
call fcn.10129ac0
push dword [esp + 0x2c]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x414], xmm0
mov al, byte [esi + 5]
test al, al
je 0x10123114
push eax
call fcn.10129ac0
movss xmm1, dword [0x103d7f48]
add esp, 4
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0x418], xmm0
jmp 0x1012311c
movss xmm1, dword [0x103d7f48]
mov al, byte [esi + 6]
test al, al
je 0x10123142
push eax
call fcn.10129ac0
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0x41c], xmm0
movzx eax, byte [esi + 7]
push eax
movzx eax, byte [esi]
jmp 0x1012325f
movzx eax, byte [esi + 7]
mov dl, byte [esi + 3]
mov cl, byte [esi]
push eax
movzx eax, byte [esi + 4]
push eax
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 2]
push eax
push edx
push ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ecx
call fcn.1012a260
add esp, 0x18
test ax, ax
je 0x10123267
mov ecx, dword [esp + 0x28]
mov al, cl
or al, dl
je 0x101231b9
push ecx
call fcn.10129ac0
push dword [esp + 0x14]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x410], xmm0
mov dl, byte [esi + 2]
mov cl, byte [esi + 5]
mov al, dl
or al, cl
mov dword [esp + 0x28], ecx
je 0x101231f5
push edx
call fcn.10129ac0
push dword [esp + 0x2c]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x414], xmm0
mov al, byte [esi + 4]
test al, al
je 0x10123225
push eax
call fcn.10129ac0
movss xmm1, dword [0x103d7f48]
add esp, 4
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0x418], xmm0
jmp 0x1012322d
movss xmm1, dword [0x103d7f48]
cmp byte [esi + 4], 0
je 0x10123256
movzx eax, byte [esi + 7]
push eax
call fcn.10129ac0
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0x41c], xmm0
movzx eax, byte [esi + 6]
push eax
movzx eax, byte [esi + 1]
push eax
mov ecx, edi
call fcn.10111b50
push esi
mov ecx, edi
call fcn.1012fed0
jmp case.0x10122aa3.537920004
cmp esi, 0x105
jne 0x10123298
mov ecx, edi
call fcn.101120a0
movzx eax, ax
cdq
mov dword [edi + 0x448], eax
mov dword [edi + 0x44c], edx
jmp case.0x10122aa3.537920004
cmp esi, 0x114
jne 0x101233bb
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
mov esi, eax
push 1
push dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov eax, dword [esp + 0x1c]
cmp eax, 0x16c
ja 0x10123349
je 0x101232e4
sub eax, 0x118
je 0x101232e4
sub eax, 0x34
jne 0x101233ae
mov cl, byte [esi + 2]
mov dl, byte [esi + 3]
mov al, cl
or al, dl
je 0x101233ae
movzx ecx, cl
sub esp, 8
shl ecx, 8
movzx eax, dl
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a50]
subss xmm0, dword [0x103d7af4]
mulss xmm0, dword [0x103d7aa8]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
add esp, 8
mov ecx, edi
fstp dword [edi + 0x434]
push esi
call fcn.1012fed0
jmp case.0x10122aa3.537920004
cmp eax, 0x600
je 0x10123357
cmp eax, 0x800
jne 0x101233ae
movzx eax, byte [esi + 0x3f7]
mov ecx, edi
push eax
movzx eax, byte [esi + 0x3f8]
push eax
call fcn.101119d0
cmp word [edi + 0x3a2], 3
je 0x101233ae
movzx eax, byte [esi + 0x99]
sub eax, 0x10
je 0x101233a2
sub eax, 1
jne 0x101233ae
mov eax, 2
mov ecx, edi
push esi
mov word [edi + 0x3a2], ax
call fcn.1012fed0
jmp case.0x10122aa3.537920004
mov eax, 1
mov word [edi + 0x3a2], ax
push esi
mov ecx, edi
call fcn.1012fed0
jmp case.0x10122aa3.537920004
cmp esi, 0x9050
jne 0x1012341a
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
push 1
push esi
push eax
mov edx, dword [ecx]
mov dword [esp + 0x68], eax
mov dword [esp + 0x50], 1
call dword [edx + 8]
mov eax, dword [edi + 0x3a4]
test eax, eax
je case.0x10122aa3.537920004
mov esi, dword [esp + 0x5c]
mov ecx, edi
push eax
push esi
call fcn.10111d30
push esi
mov ecx, edi
call fcn.1012fed0
mov dword [esp + 0x44], 0
jmp case.0x10122aa3.537920004
cmp esi, 0x940c
jne 0x10123485
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
push 1
push esi
push eax
mov edx, dword [ecx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 1
call dword [edx + 8]
cmp dword [edi + 0x3a4], 0
je case.0x10122aa3.537920004
cmp word [edi + 0x3aa], 2
jne case.0x10122aa3.537920004
mov esi, dword [esp + 0x48]
mov ecx, edi
push esi
call fcn.10112010
push esi
mov ecx, edi
call fcn.1012fed0
mov dword [esp + 0x4c], 0
jmp case.0x10122aa3.537920004
cmp esi, 0xb027
je 0x10123499
cmp esi, 0x10c
jne 0x10123520
mov eax, dword [edi + 0x318]
and eax, dword [edi + 0x31c]
cmp eax, 0xffffffff
jne 0x10123520
mov ecx, edi
call fcn.1010f760
mov dword [edi + 0x31c], 0
mov ecx, dword [edi + 0x31c]
mov dword [edi + 0x318], eax
test ecx, ecx
jne 0x101234d4
cmp eax, 0xef00
jbe 0x101234ff
test ecx, ecx
ja 0x101234ff
jb 0x101234df
cmp eax, 0xffff
jae 0x101234ff
add eax, 0xffff1100
mov dword [edi + 0x318], eax
mov eax, 3
adc ecx, 0xffffffff
mov word [edi + 0x3a2], ax
mov dword [edi + 0x31c], ecx
cmp esi, 0x10c
mov esi, dword [esp + 0xc]
jne 0x10123b74
mov eax, 1
mov word [edi + 0x3aa], ax
jmp 0x10123b74
cmp esi, 0xb02a
jne case.0x10122aa3.537920004
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
mov dword [esp + 0x18], eax
push 1
push esi
mov eax, dword [ecx]
mov esi, dword [esp + 0x20]
push esi
call dword [eax + 8]
movzx eax, byte [esi + 6]
mov dl, byte [esi + 2]
mov cl, byte [esi + 1]
push eax
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 4]
push eax
movzx eax, byte [esi + 3]
push eax
push edx
push ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ecx
call fcn.1012a260
add esp, 0x18
test ax, ax
je 0x10123267
mov ecx, dword [esp + 0x28]
mov al, cl
or al, dl
je 0x101235ba
push ecx
call fcn.10129ac0
push dword [esp + 0x14]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x410], xmm0
mov dl, byte [esi + 3]
mov cl, byte [esi + 4]
mov al, dl
or al, cl
mov dword [esp + 0x28], ecx
je 0x101235f6
push edx
call fcn.10129ac0
push dword [esp + 0x2c]
movzx eax, ax
imul edx, eax, 0x64
call fcn.10129ac0
movzx eax, ax
add esp, 8
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x414], xmm0
mov al, byte [esi + 5]
test al, al
je 0x10123114
push eax
call fcn.10129ac0
movss xmm1, dword [0x103d7f48]
add esp, 4
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0x418], xmm0
jmp 0x1012311c
cmp esi, 5
jne 0x10123680
mov ecx, edi
call fcn.1010f760
push eax
mov ecx, edi
mov dword [edi + 0x492cc], eax
call fcn.101112d0
cmp dword [ebp + 0x10], 1
jne case.0x10122aa3.537920004
mov eax, dword [edi + 0x492cc]
cmp eax, 0x12f66
je 0x10123670
cmp eax, 0x12f7a
je 0x10123670
cmp eax, 0x12ee4
jne case.0x10122aa3.537920004
mov esi, dword [esp + 0xc]
add esi, 0xa
mov dword [esp + 0xc], esi
jmp 0x10123b74
cmp esi, 0x13
jne 0x101236ab
mov ecx, edi
call fcn.101120a0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x103d7f48]
movss dword [edi + 0x434], xmm0
jmp case.0x10122aa3.537920004
cmp esi, 0x1d
jne 0x101236e4
mov ecx, edi
call fcn.1010f760
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x103d7f88]
movss dword [edi + 0x430], xmm0
jmp case.0x10122aa3.537920004
cmp esi, 0x3f
jne 0x1012371c
mov ecx, dword [edi + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x49280]
mov esi, eax
shl esi, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
or eax, esi
cdq
mov dword [edi + 0x318], eax
mov dword [edi + 0x31c], edx
jmp case.0x10122aa3.537920004
cmp esi, 0x207
jne 0x10123ad2
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1012fdf0
mov ecx, dword [edi + 0x49280]
mov esi, eax
push 1
push dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov eax, dword [edi + 0x3a4]
cmp eax, 0x12b9c
jb 0x10123870
je 0x10123870
cmp eax, 0x12b9d
je 0x10123870
cmp eax, 0x12ba2
jne 0x10123787
mov al, byte [esi + 0x14]
test al, al
je 0x10123870
cmp al, 0xff
je 0x10123870
mov eax, dword [esp + 0x1c]
add eax, 0xffffffb0
cmp eax, 0x30
ja case.0x1012379e.81
movzx eax, byte [eax + 0x10123c60]
jmp dword [eax*4 + 0x10123c50]
mov dword [esp + 0x10], 0xd
mov eax, dword [edi + 0x318]
and eax, dword [edi + 0x31c]
cmp eax, 0xffffffff
jne 0x101238b5
mov al, byte [esi + 1]
and al, 0xf
movzx eax, al
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc esi, edx
movzx eax, byte [eax + 4]
jmp 0x10123899
mov dword [esp + 0x10], 0xc
jmp 0x101237ad
mov eax, dword [edi + 0x318]
and eax, dword [edi + 0x31c]
mov dword [esp + 0x10], 0xf
cmp eax, 0xffffffff
jne 0x101238b5
mov al, byte [esi + 1]
and al, 0xf
movzx eax, al
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc esi, edx
movzx eax, byte [eax + 5]
jmp 0x10123899
mov eax, dword [edi + 0x318]
and eax, dword [edi + 0x31c]
mov dword [esp + 0x10], 4
cmp eax, 0xffffffff
jne 0x101238b5
mov al, byte [esi]
and al, 0xf
movzx eax, al
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc esi, edx
movzx eax, byte [eax + 3]
jmp 0x10123899
mov eax, dword [edi + 0x318]
and eax, dword [edi + 0x31c]
mov dword [esp + 0x10], 3
cmp eax, 0xffffffff
jne 0x101238b5
movzx eax, byte [esi]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 1]
shld esi, ecx, 8
cdq
shl ecx, 8
add ecx, eax
mov dword [edi + 0x318], ecx
adc esi, edx
mov dword [edi + 0x31c], esi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov dword [esp + 0x10], ecx
mov al, byte [ecx + esi + 9]
test al, al
je 0x1012393c
movss xmm0, dword [edi + 0x430]
movss xmm1, dword [0x103d7a3c]
cvtps2pd xmm0, xmm0
andps xmm0, xmmword [0x103d8770]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1012393c
movzx esi, al
sub esp, 8
mov eax, esi
and eax, 3
sub eax, 2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40800000
call fcn.10129bc0
mov ecx, dword [esp + 0x18]
add esp, 8
shr esi, 2
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x18]
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x28], xmm0
fmul dword [esp + 0x28]
fstp dword [edi + 0x430]
mov al, byte [ecx + esi + 0xa]
test al, 0xf0
je 0x1012397b
shr al, 4
sub esp, 8
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a6c]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
mov ecx, dword [esp + 0x18]
add esp, 8
fstp dword [edi + 0x438]
mov al, byte [ecx + esi + 0xa]
test al, 0xf
je 0x101239bd
movzx eax, al
sub esp, 8
and eax, 0xf
add eax, 0xa
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a6c]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
mov ecx, dword [esp + 0x18]
add esp, 8
fstp dword [edi + 0x43c]
mov eax, dword [edi + 0x3a4]
cmp eax, 0x12e6c
je 0x10123a53
cmp eax, 0x12e76
je 0x10123267
cmp eax, 0x12f70
je 0x10123a53
movzx eax, byte [ecx + esi]
and eax, 6
jmp dword [eax*4 + 0x10123c94]
cmp eax, 0x12e76
je 0x10123267
mov al, byte [ecx + esi + 0xf]
cmp al, 1
jbe 0x10123267
movss xmm0, dword [edi + 0x438]
movss xmm1, dword [0x102aba08]
cvtps2pd xmm0, xmm0
andps xmm0, xmmword [0x103d8770]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10123267
movzx eax, al
sub esp, 8
and eax, 0x7f
dec eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a14]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
add esp, 8
mov ecx, edi
fstp dword [edi + 0x438]
push esi
call fcn.1012fed0
jmp case.0x10122aa3.537920004
cmp esi, 0x239
jne case.0x10122aa3.537920004
mov ecx, dword [edi + 0x49280]
push 1
push 0
push 2
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [edi + 0x49280]
lea esi, [edi + 0x320]
push 1
push 0x1e
push esi
mov eax, dword [ecx]
call dword [eax + 8]
lea edi, [esi - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x10123b08
mov ax, word [0x1029f4e8]
lea edx, [esp + 0x8c]
mov ecx, dword [esp + 0x50]
mov word [edi], ax
push 1
push 0x14
mov ecx, dword [ecx + 0x49280]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
lea edx, [esp + 0x8c]
mov ecx, edx
mov dword [esp + 0x28], ecx
mov al, byte [edx]
inc edx
test al, al
jne 0x10123b43
sub edx, ecx
dec esi
nop dword [eax]
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10123b50
mov edi, esi
mov ecx, edx
mov esi, dword [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + 0x49280]
push 0
push 0
push dword [esp + 0x74]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x10122878
mov edx, dword [esp + 0x84]
jmp 0x10121e00