Function at 0x101522e0
Capabilities:
Check http status code
Encode data using base64
Encode data using xor
Encrypt data using rc4 ksa
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe8
xor eax, eax
mov dword [esp + 0x6c], 0
push esi
push edi
mov edi, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0xa0], eax
mov ecx, dword [edi + 0x54800]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
movzx eax, word [edi + 0x54860]
mov dword [esp + 0xac], eax
mov eax, dword [ecx]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x64], 0
mov dword [esp + 0x58], 0
mov eax, dword [eax + 0x14]
mov dword [esp + 0x54], 0
call eax
mov ecx, dword [edi + 0x54800]
push 0xa
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x44]
push 1
mov esi, dword [ecx]
push eax
mov dword [esp + 0xc0], edx
call dword [esi + 8]
mov ecx, str.Nikon
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101523c7
test dl, dl
je 0x101523c3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101523c7
add eax, 2
add ecx, 2
test dl, dl
jne 0x101523a7
xor eax, eax
jmp 0x101523cc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10152421
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, eax
mov ecx, edi
mov dword [esp + 0x30], esi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0x54860], ax
call fcn.1013c960
cmp ax, 0x2a
jne 0x101532c1
mov ecx, edi
call fcn.10135240
mov ecx, dword [edi + 0x54800]
add eax, 0xfffffff8
push 1
push 0
push eax
mov edx, dword [ecx]
call dword [edx + 0xc]
jmp 0x10152762
mov ecx, str.OLYMPUS
lea eax, [esp + 0x40]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152450
test dl, dl
je 0x1015244c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152450
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152430
xor eax, eax
jmp 0x10152455
sbb eax, eax
or eax, 1
test eax, eax
je 0x10152721
mov ecx, 0x102b6088
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152486
test dl, dl
je 0x10152482
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152486
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152466
xor eax, eax
jmp 0x1015248b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10152721
push 7
lea esi, [edi + 0xc4]
push str.SAMSUNG
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x101524b7
cmp dword [ebp + 0x10], 1
je 0x10152721
push 4
lea eax, [esp + 0x44]
push str.SONY
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x101526fb
mov ecx, str.Panasonic
lea eax, [esp + 0x40]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152500
test dl, dl
je 0x101524fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152500
add eax, 2
add ecx, 2
test dl, dl
jne 0x101524e0
xor eax, eax
jmp 0x10152505
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526fb
push 8
lea eax, [esp + 0x44]
push str.FUJIFILM
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x1015253a
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
lea esi, [eax - 0xa]
jmp 0x101526fe
mov ecx, str.OLYMP
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152563
test dl, dl
je 0x1015255f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152563
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152543
xor eax, eax
jmp 0x10152568
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526e1
mov ecx, str.LEICA
lea eax, [esp + 0x40]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101525a0
test dl, dl
je 0x1015259c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101525a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152580
xor eax, eax
jmp 0x101525a5
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526e1
mov ecx, str.Ricoh
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101525d6
test dl, dl
je 0x101525d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101525d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x101525b6
xor eax, eax
jmp 0x101525db
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526e1
mov ecx, str.EPSON
lea eax, [esp + 0x40]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152610
test dl, dl
je 0x1015260c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152610
add eax, 2
add ecx, 2
test dl, dl
jne 0x101525f0
xor eax, eax
jmp 0x10152615
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526e1
mov ecx, 0x102b60b4
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152646
test dl, dl
je 0x10152642
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152646
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152626
xor eax, eax
jmp 0x1015264b
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526c4
mov ecx, 0x102b60b8
lea eax, [esp + 0x40]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10152678
test dl, dl
je 0x10152674
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10152678
add eax, 2
add ecx, 2
test dl, dl
jne 0x10152658
xor eax, eax
jmp 0x1015267d
sbb eax, eax
or eax, 1
test eax, eax
je 0x101526c4
mov ecx, dword [edi + 0x54800]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffff6
mov eax, dword [ecx]
call dword [eax + 0xc]
push 7
push str.SAMSUNG
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x101526d5
cmp dword [ebp + 0x10], 2
jne 0x101526d5
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x10152762
mov ecx, dword [edi + 0x54800]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffc
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x30], esi
jmp 0x10152762
mov ecx, dword [edi + 0x54800]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x30], esi
jmp 0x10152762
mov esi, dword [ebp + 8]
mov dword [esp + 0x30], esi
mov ecx, dword [edi + 0x54800]
mov eax, 0x4949
push 1
mov word [edi + 0x54860], ax
push 0
mov eax, dword [ecx]
push 2
call dword [eax + 0xc]
jmp 0x10152762
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [edi + 0x54800]
push 1
push 0xffffffffffffffff
lea esi, [eax - 0xa]
mov eax, dword [ecx]
push 0xfffffffffffffffe
mov dword [esp + 0x3c], esi
call dword [eax + 0xc]
mov ecx, edi
call fcn.1013c960
cmp byte [esp + 0x40], 0x4f
mov word [edi + 0x54860], ax
jne 0x10152762
mov ecx, edi
call fcn.1013c960
mov ecx, edi
call fcn.1013c960
movzx eax, ax
cmp eax, 0x3e8
ja 0x101532cf
movzx edx, word [edi + 0x54860]
mov dword [esp + 0xa8], edx
test eax, eax
je 0x101532c1
nop dword [eax]
dec eax
mov word [edi + 0x54860], dx
mov dword [esp + 0xa4], eax
mov ecx, edi
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x78]
push eax
push esi
call fcn.1014c820
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp eax, 8
jbe 0x10152805
mov esi, eax
xor ecx, ecx
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0xb4]
adc ecx, edx
mov edx, dword [esp + 0xb0]
shld eax, edx, 1
add edx, edx
cmp ecx, eax
jl 0x10152805
jg case.0x10153b4a.537920004
cmp esi, edx
ja case.0x10153b4a.537920004
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x6c]
shl eax, 0x10
or esi, eax
cmp dword [esp + 0xc], 0x6400000
mov dword [esp + 0x18], esi
mov dword [esp + 0x6c], esi
ja case.0x10153b4a.537920004
push 5
lea eax, [edi + 0xc4]
push str.Canon
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x1015294c
cmp esi, 0xd
jne 0x101528e3
mov ecx, dword [esp + 0xc]
cmp ecx, 0x3e800
jae 0x1015293a
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
cmp eax, 4
je 0x101528a3
mov eax, ecx
cmp ecx, 0x10
mov ecx, 0x10
cmovb eax, ecx
mov ecx, edi
push eax
call fcn.10168c80
mov ecx, dword [edi + 0x54800]
push 1
push dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov edx, dword [ecx]
push eax
call dword [edx + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x60], esi
jmp case.0x10153b4a.537920004
lea eax, [ecx*4]
mov ecx, 0x10
cmp eax, 0x10
cmovb eax, ecx
mov ecx, edi
push eax
call fcn.10168c80
mov ecx, dword [edi + 0x54800]
push 4
push dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ecx]
push dword [esp + 0x58]
call dword [eax + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x60], esi
jmp case.0x10153b4a.537920004
cmp esi, 0x10
jne 0x10152936
mov ecx, edi
call fcn.10135240
push eax
mov ecx, edi
call fcn.10136010
mov esi, dword [esp + 0x60]
mov dword [edi + 0x5484c], eax
test esi, esi
je case.0x10153b4a.537920004
push dword [esp + 0x70]
mov ecx, edi
push esi
mov esi, dword [esp + 0x58]
push esi
push eax
call fcn.101361d0
push esi
mov ecx, edi
call fcn.10168d30
xor eax, eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], eax
jmp case.0x10153b4a.537920004
mov ecx, dword [esp + 0xc]
push ecx
push dword [esp + 0x2c]
mov ecx, edi
push esi
call fcn.101377d0
jmp case.0x10153b4a.537920004
push 4
lea eax, [edi + 0xc4]
push str.FUJI
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x10152977
push dword [esp + 0x28]
mov ecx, edi
push esi
call fcn.1013c660
jmp case.0x10153b4a.537920004
push 5
lea eax, [edi + 0xc4]
push str.LEICA
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne 0x10152cc3
cmp esi, 0x320
jne 0x10152a23
cmp dword [esp + 0x28], 9
jne case.0x10153b4a.537920004
cmp dword [esp + 0xc], 1
jne case.0x10153b4a.537920004
push 0xf
lea eax, [edi + 0xc4]
push str.Leica_Camera_AG
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10153b4a.537920004
push 5
lea eax, [esp + 0x44]
push str.LEICA
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne case.0x10153b4a.537920004
cmp byte [esp + 0x45], al
jne case.0x10153b4a.537920004
cmp byte [esp + 0x46], al
jne case.0x10153b4a.537920004
cmp byte [esp + 0x47], al
jne case.0x10153b4a.537920004
push 9
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2abec]
jmp case.0x10153b4a.537920004
cmp esi, 0x34003402
jne 0x10152a41
push dword [esp + 0x28]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2abec]
jmp case.0x10153b4a.537920004
mov eax, dword [esp + 0x28]
cmp esi, 0x35e
je 0x10152a59
cmp esi, 0x35f
jne 0x10152afd
mov ecx, dword [esp + 0xc]
cmp eax, 0xa
jne 0x10152b01
cmp ecx, 9
jne 0x10152b01
xor edx, edx
mov eax, 0x9498
cmp esi, 0x35e
mov dword [esp + 0x14], eax
setne dl
mov dword [esp + 0x4c], edx
nop word [eax + eax]
xor ecx, ecx
mov dword [esp + 0x34], ecx
cmp dword [edi + 0x190], ecx
jbe 0x10152adb
nop
cmp ecx, 4
jae 0x10152ad7
push 0xa
mov ecx, edi
call fcn.1013ca50
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
imul eax, edx, 0x2a
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
add eax, ecx
inc ecx
add eax, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
fstp dword [edi + eax*4]
cmp ecx, dword [edi + 0x190]
jb 0x10152aa0
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, 0x94a4
jl 0x10152a90
lea eax, [edx + 0x389]
imul eax, eax, 0xa8
or dword [eax + edi], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
cmp esi, 0x303
jne 0x10152b37
cmp eax, 4
je case.0x10153b4a.537920004
mov eax, 0x80
cmp ecx, eax
cmovb eax, ecx
push dword [edi + 0x54800]
push eax
lea eax, [edi + 0x428]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
cmp esi, 0x3405
je 0x10152bef
cmp esi, 0x310
je 0x10152bef
cmp esi, 0x34003405
je 0x10152bef
cmp esi, 0x313
je 0x10152b6b
cmp esi, 0x34003406
jne 0x10152bd2
movss xmm0, dword [edi + 0x544]
movss xmm1, dword [0x102c7cc4]
cvtps2pd xmm0, xmm0
andps xmm0, xmmword [0x103f9bc0]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10152bd2
cmp eax, 0xa
je 0x10152b98
cmp eax, 5
jne 0x10152bd2
push eax
mov ecx, edi
call fcn.1013ca50
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
movss dword [edi + 0x544], xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x102c7df8]
jbe case.0x10153b4a.537920004
mov dword [edi + 0x544], 0
jmp case.0x10153b4a.537920004
cmp esi, 0x3400
jne case.0x10153b4a.537920004
push esi
push dword [esp + 0x34]
mov ecx, edi
call fcn.1014cad0
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.10135240
mov dword [edi + 0x420], eax
mov ecx, eax
and eax, 0xfffffffc
mov dword [edi + 0x424], 0
mov edx, dword [edi + 0x424]
and ecx, 3
shld edx, eax, 6
shl eax, 6
or eax, ecx
mov dword [edi + 0x424], edx
mov dword [edi + 0x420], eax
and eax, edx
cmp eax, 0xffffffff
je case.0x10153b4a.537920004
cmp byte [edi + 0x104], 0x4d
lea esi, [edi + 0x104]
je 0x10152c99
push 7
push str.LEICA_M
push esi
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x10152c99
cmp byte [esi], 0x53
je 0x10152c74
push 7
push str.LEICA_S
push esi
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10153b4a.537920004
mov eax, 0x10
mov word [edi + 0x4ba], ax
cmp byte [edi + 0x428], 0
je case.0x10153b4a.537920004
mov word [edi + 0x4aa], ax
jmp case.0x10153b4a.537920004
mov eax, dword [edi + 0x420]
mov ecx, 0xe
or eax, dword [edi + 0x424]
mov word [edi + 0x4ba], cx
je case.0x10153b4a.537920004
mov word [edi + 0x4aa], cx
jmp case.0x10153b4a.537920004
push 5
lea eax, [edi + 0xc4]
push str.NIKON
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x101532d7
cmp esi, 0x1d
jne 0x10152dce
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je case.0x10153b4a.537920004
cmp esi, 0xffffffff
je case.0x10153b4a.537920004
cmp dword [esp + 0x58], 0
jne 0x10152d7d
push esi
call fcn.10271d82
add esp, 4
test eax, eax
jne 0x10152d7d
lea esi, [edi + 0x104]
push 0x3f
push esi
call fcn.101604b0
add esp, 8
cmp eax, 3
jne 0x10152d71
mov eax, 0x103f3bb8
nop dword [eax]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10152d60
test cl, cl
je 0x10152d5c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10152d60
add esi, 2
add eax, 2
test cl, cl
jne 0x10152d40
xor eax, eax
jmp 0x10152d65
sbb eax, eax
or eax, 1
mov dword [esp + 0x58], 0x22
test eax, eax
je 0x10152d79
mov dword [esp + 0x58], 0x60
mov esi, dword [esp + 0x14]
push esi
call fcn.10271d82
add esp, 4
test eax, eax
je 0x10152d8f
add esi, 0xffffffd0
jmp 0x10152da0
mov eax, 0xcccccccd
mul esi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
mov ecx, dword [esp + 0x64]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov esi, eax
mov dword [esp + 0x14], eax
test esi, esi
jne 0x10152d05
jmp case.0x10153b4a.537920004
cmp esi, 0xa
je 0x10152f5f
cmp esi, 0x82
jne 0x10152e08
push dword [edi + 0x54800]
mov eax, 0x80
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0x678]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
cmp esi, 0x83
jne 0x10152e28
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov byte [edi + 0x40f], al
jmp case.0x10153b4a.537920004
cmp esi, 0x84
jne 0x10152e71
mov esi, dword [esp + 0x28]
mov ecx, edi
push esi
call fcn.1013ca50
fstp dword [edi + 0x520]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x524]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x528]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x52c]
jmp case.0x10153b4a.537920004
cmp esi, 0x8b
jne 0x10152ef7
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x54800]
mov byte [esp + 0x13], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
mov ecx, dword [edi + 0x54800]
mov byte [esp + 0x12], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
test al, al
je case.0x10153b4a.537920004
movzx ecx, al
xor edx, edx
mov eax, 0xc
div ecx
movzx ecx, byte [esp + 0x12]
movzx edx, al
movzx eax, byte [esp + 0x13]
imul edx, ecx
movzx ecx, dl
imul ecx, eax
movzx eax, cl
mov byte [edi + 0x40d], cl
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x102c7e58]
movss dword [edi + 0x558], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0x93
jne 0x10152f1a
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov word [edi + 0xa1a], ax
cmp eax, 7
je 0x10152f5f
cmp eax, 9
jmp 0x10152f59
cmp esi, 0x97
jne 0x10152f77
mov esi, 4
nop word [eax + eax]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esp + 0x74]
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [eax + edx*2]
mov dword [esp + 0x74], edx
sub esi, 1
jne 0x10152f30
cmp edx, 0x259
jne case.0x10153b4a.537920004
mov esi, 0x63
mov word [edi + 0x4aa], si
mov word [edi + 0x4ba], si
jmp case.0x10153b4a.537920004
cmp esi, 0x98
jne 0x10153070
mov esi, 4
nop dword [eax + eax]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esp + 0x54]
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [eax + edx*2]
mov dword [esp + 0x54], edx
sub esi, 1
jne 0x10152f90
cmp edx, 0x190
ja 0x10152fef
je 0x10152fe8
lea eax, [edx - 0x64]
cmp eax, 0x68
ja case.0x10152fcc.102
movzx eax, byte [eax + 0x101548a4]
jmp dword [eax*4 + 0x10154894]
mov esi, 9
jmp 0x10153023
mov esi, 0xf
jmp 0x10153023
mov esi, 0x10
jmp 0x10153023
mov esi, 0x1cb
jmp 0x10153023
mov eax, edx
sub eax, 0x191
je 0x1015301e
sub eax, 1
je 0x10153017
sub eax, 1
je 0x10153010
mov esi, dword [esp + 0x2c]
test esi, esi
je case.0x10153b4a.537920004
jmp 0x10153027
mov esi, 0x36f
jmp 0x10153023
mov esi, 0x1fd
jmp 0x10153023
mov esi, 0x24e
mov dword [esp + 0x2c], esi
push esi
mov ecx, edi
call fcn.10168c80
mov ecx, dword [edi + 0x54800]
push 1
push esi
push eax
mov edx, dword [ecx]
mov dword [esp + 0x68], eax
call dword [edx + 8]
cmp dword [esp + 0x54], 0xc9
jae case.0x10153b4a.537920004
push esi
mov esi, dword [esp + 0x60]
mov ecx, edi
push esi
call fcn.10138a90
push esi
mov ecx, edi
call fcn.10168d30
xor eax, eax
mov dword [esp + 0x2c], eax
jmp case.0x10153b4a.537920004
cmp esi, 0xa7
jne 0x10153161
mov esi, dword [edi + 0x54800]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x14], eax
mov edx, dword [edx + 0x18]
call edx
mov ecx, dword [edi + 0x54800]
xor byte [esp + 0x14], al
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x54800]
xor al, byte [esp + 0x14]
mov byte [esp + 0x12], al
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
mov edx, eax
xor dl, byte [esp + 0x12]
cmp dword [esp + 0x54], 0xc8
jbe case.0x10153b4a.537920004
mov esi, dword [esp + 0x2c]
test esi, esi
je case.0x10153b4a.537920004
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x101530ed
mov eax, dword [esp + 0x64]
movzx eax, al
mov cl, byte [eax + 0x102b4080]
movzx eax, dl
xor edx, edx
mov byte [esp + 0x39], cl
mov al, byte [eax + 0x102b4180]
mov byte [esp + 0x13], al
mov al, 0x60
mov byte [esp + 0x12], al
test esi, esi
je 0x10153141
mov edi, dword [esp + 0x5c]
movzx eax, al
movzx ecx, cl
imul ecx, eax
mov al, byte [esp + 0x13]
add al, cl
mov cl, byte [esp + 0x39]
xor byte [edi + edx], al
inc edx
mov byte [esp + 0x13], al
mov al, byte [esp + 0x12]
add al, 1
mov byte [esp + 0x12], al
cmp edx, esi
jb 0x10153114
mov edi, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x60]
mov ecx, edi
push esi
call fcn.10138a90
xor eax, eax
mov ecx, edi
push esi
mov dword [esp + 0x30], eax
call fcn.10168d30
jmp case.0x10153b4a.537920004
cmp esi, 0xa8
jne 0x10153185
mov esi, 4
nop
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x18]
sub esi, 1
jne 0x10153170
jmp case.0x10153b4a.537920004
cmp esi, 0xb0
jne 0x101531c0
mov ecx, edi
call fcn.10135240
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov dword [edi + 0xa1c], eax
call fcn.10135240
mov ecx, edi
mov dword [edi + 0xa20], eax
call fcn.10135240
mov dword [edi + 0xa24], eax
jmp case.0x10153b4a.537920004
cmp esi, 0xb9
jne 0x10153227
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x26]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x26]
mov al, byte [esp + 0x26]
push 1
mov byte [edi + 0xa48], al
mov eax, dword [ecx]
push 1
push edx
call dword [eax + 8]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x3a]
mov al, byte [esp + 0x26]
push 1
mov byte [edi + 0xa49], al
mov eax, dword [ecx]
push 1
push edx
call dword [eax + 8]
mov al, byte [esp + 0x3a]
mov byte [edi + 0xa4a], al
jmp case.0x10153b4a.537920004
cmp esi, 0x25
jne case.0x10153b4a.537920004
movss xmm0, dword [edi + 0x2a8d8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10153255
ucomiss xmm0, dword [0x103f972c]
lahf
test ah, 0x44
jp case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x27]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
movzx eax, byte [esp + 0x27]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x103f95c8]
subsd xmm0, qword [0x103f9588]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10160460
fmul qword [0x103f9640]
add esp, 8
fstp qword [esp + 0x78]
cvttsd2si eax, qword [esp + 0x78]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2a8d8], xmm0
mov eax, dword [esp + 0xac]
mov word [edi + 0x54860], ax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 7
lea eax, [edi + 0xc4]
push str.OLYMPUS
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x10153f45
push 5
lea eax, [edi + 0x104]
push str.E_300
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015337f
push 5
lea eax, [edi + 0x104]
push str.E_330
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015337f
push 5
lea eax, [edi + 0x104]
push str.E_400
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015337f
push 5
lea eax, [edi + 0x104]
push str.E_500
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015337f
push 3
lea eax, [edi + 0x104]
push 0x102b6104
push eax
call fcn.1027dd20
add esp, 0xc
mov dword [esp + 0x34], 1
test eax, eax
jne 0x10153387
mov dword [esp + 0x34], 0
cmp esi, 0x2010
je 0x101533bf
cmp esi, 0x2020
je 0x101533bf
cmp esi, 0x2030
je 0x101533bf
cmp esi, 0x2031
je 0x101533bf
cmp esi, 0x2040
je 0x101533bf
cmp esi, 0x2050
je 0x101533bf
cmp esi, 0x3000
jne 0x1015340c
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x68]
push 0
add eax, 0xfffffffc
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0xc]
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x3c]
push 0
mov edi, dword [esi]
call fcn.10135240
add eax, dword [esp + 0x34]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
mov ecx, edi
push esi
push dword [esp + 0x38]
call fcn.101522e0
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
jne 0x1015345c
cmp ecx, 4
ja case.0x10153b4a.537920004
cmp edx, 3
je 0x1015342e
cmp edx, 8
jne 0x10153437
cmp ecx, 2
ja case.0x10153b4a.537920004
cmp edx, 4
je 0x10153441
cmp edx, 9
jne 0x1015344a
cmp ecx, 1
ja case.0x10153b4a.537920004
cmp edx, 5
je case.0x10153b4a.537920004
cmp edx, 9
ja case.0x10153b4a.537920004
lea eax, [esi - 0x20400101]
cmp eax, 0x10
ja 0x10153648
cmp esi, 0x20400101
jne 0x10153516
cmp ecx, 2
jne 0x10153516
push 5
lea eax, [edi + 0x104]
push str.E_410
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x101534b4
push 5
lea eax, [edi + 0x104]
push str.E_510
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne 0x10153516
lea eax, [edi + 0x2a398]
mov edx, 0x40
lea ecx, [edi + 0x29394]
mov dword [ecx + 8], 0x100
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x10], 0x100
lea eax, [eax + 0x14]
mov dword [eax - 0xc], 0x43800000
mov dword [eax - 0x14], 0x43800000
sub edx, 1
jne 0x101534c5
lea eax, [edi + 0x29794]
mov ecx, 0xc0
nop word [eax + eax]
mov dword [eax + 8], 0x100
lea eax, [eax + 0x10]
mov dword [eax - 0x10], 0x100
sub ecx, 1
jne 0x10153500
lea eax, [esi - 0x101]
mov ecx, edi
movzx eax, ax
movsx esi, ax
movzx eax, word [esi*8 + 0x10415df0]
mov dword [esp + 0x4c], eax
lea eax, [esi + esi]
or eax, 1
movzx eax, word [eax*4 + 0x10415df0]
mov dword [esp + 0x18], eax
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.1013c960
mov edx, dword [esp + 0x34]
mov ecx, 0x100
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
cmp ax, cx
je 0x10153589
movsx ecx, ax
lea eax, [ecx + 0x2939]
add eax, eax
add ecx, ecx
mov dword [edi + eax*8], edx
mov eax, dword [esp + 0x14]
mov dword [edi + ecx*8 + 0x29398], eax
mov eax, dword [esp + 0x18]
test ax, ax
je 0x101535ca
movzx eax, ax
lea ecx, [esi + esi*4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + ecx*4 + 0x2a37c], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + ecx*4 + 0x2a380], xmm0
movd xmm0, dword [esp + 0x14]
cvtdq2ps xmm0, xmm0
movss dword [edi + ecx*4 + 0x2a388], xmm0
cmp dword [esp + 0xc], 4
jne case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.1013c960
mov ecx, 0x100
movzx edx, ax
mov eax, dword [esp + 0x4c]
cmp ax, cx
mov ecx, dword [esp + 0x34]
je 0x10153610
cwde
add eax, eax
mov dword [edi + eax*8 + 0x29394], ecx
mov dword [edi + eax*8 + 0x2939c], edx
mov eax, dword [esp + 0x18]
test ax, ax
je case.0x10153b4a.537920004
movd xmm0, ecx
lea eax, [esi + esi*4]
cvtdq2ps xmm0, xmm0
movss dword [edi + eax*4 + 0x2a384], xmm0
lea eax, [esi + esi*4]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + eax*4 + 0x2a38c], xmm0
jmp case.0x10153b4a.537920004
lea eax, [esi - 0x20400112]
cmp eax, 0xc
ja 0x101536c1
lea eax, [esi - 0x112]
mov ecx, edi
movzx esi, ax
call fcn.1013c960
movsx ecx, si
movzx edx, ax
movzx eax, word [ecx*8 + 0x10415df0]
mov dword [esp + 0x18], eax
test si, si
je 0x1015369d
movd xmm0, edx
lea eax, [ecx + ecx*4]
cvtdq2ps xmm0, xmm0
movss dword [edi + eax*4 + 0x2a38c], xmm0
lea eax, [ecx + ecx*4]
movss dword [edi + eax*4 + 0x2a384], xmm0
mov eax, dword [esp + 0x18]
mov ecx, 0x100
cmp ax, cx
je case.0x10153b4a.537920004
cwde
add eax, eax
mov dword [edi + eax*8 + 0x2939c], edx
mov dword [edi + eax*8 + 0x29394], edx
jmp case.0x10153b4a.537920004
cmp esi, 0x2040011f
jne 0x10153745
mov ecx, edi
call fcn.1013c960
cmp dword [edi + 0x293d0], 0
movzx eax, ax
je 0x101536e8
mov dword [edi + 0x293dc], eax
mov dword [edi + 0x293d4], eax
cmp dword [edi + 0x29930], 0
je 0x101536fd
mov dword [edi + 0x2993c], eax
mov dword [edi + 0x29934], eax
cmp dword [edi + 0x29940], 0
je 0x10153712
mov dword [edi + 0x2994c], eax
mov dword [edi + 0x29944], eax
cmp dword [edi + 0x29950], 0
je 0x10153727
mov dword [edi + 0x2995c], eax
mov dword [edi + 0x29954], eax
cmp dword [edi + 0x29960], 0
je case.0x10153b4a.537920004
mov dword [edi + 0x2996c], eax
mov dword [edi + 0x29964], eax
jmp case.0x10153b4a.537920004
cmp esi, 0x20400121
jne 0x1015379d
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [edi + 0x293d0], eax
call fcn.1013c960
cmp dword [esp + 0xc], 4
movzx eax, ax
mov dword [edi + 0x293d8], eax
jne case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [edi + 0x293d4], eax
call fcn.1013c960
movzx eax, ax
mov dword [edi + 0x293dc], eax
jmp case.0x10153b4a.537920004
cmp esi, 0x30000110
jne 0x1015383b
mov ecx, str.v757_71
lea eax, [edi + 0x144]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101537d4
test dl, dl
je 0x101537d0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101537d4
add eax, 2
add ecx, 2
test dl, dl
jne 0x101537b4
xor eax, eax
jmp 0x101537d9
sbb eax, eax
or eax, 1
test eax, eax
je case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [edi + 0x298b0], eax
call fcn.1013c960
cmp dword [esp + 0xc], 2
movzx eax, ax
mov dword [edi + 0x298b8], eax
jne case.0x10153b4a.537920004
lea eax, [edi + 0x29394]
mov ecx, 0x100
nop word [eax + eax]
mov dword [eax + 8], 0x100
lea eax, [eax + 0x10]
mov dword [eax - 0x10], 0x100
sub ecx, 1
jne 0x10153820
jmp case.0x10153b4a.537920004
cmp esi, 0x30000120
jb 0x1015384b
cmp esi, 0x30000124
jbe 0x1015385a
lea eax, [esi - 0x30000130]
cmp eax, 3
ja 0x101538e2
mov ecx, str.v757_71
lea eax, [edi + 0x144]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10153885
test dl, dl
je 0x10153881
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10153885
add eax, 2
add ecx, 2
test dl, dl
jne 0x10153865
xor eax, eax
jmp 0x1015388a
sbb eax, eax
or eax, 1
test eax, eax
je 0x101538de
cmp esi, 0x30000124
ja 0x1015389e
add esi, 0xcffffee0
jmp 0x101538a4
add esi, 0xcffffed5
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, dword [esi*4 + 0x10415d74]
add eax, 0x2939
add eax, eax
mov dword [edi + eax*8], ecx
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, dword [esi*4 + 0x10415d74]
add eax, eax
mov dword [edi + eax*8 + 0x29398], ecx
jmp case.0x10153b4a.537920004
mov edx, dword [esp + 0x28]
cmp esi, 0x20100201
ja 0x10153b29
je 0x10153a75
cmp esi, 0x1008
ja 0x1015399c
je 0x1015397e
sub esi, 0x207
je 0x101539d6
sub esi, 0xdfb
je 0x1015393d
sub esi, 5
jne case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2abf0], xmm0
jmp case.0x10153b4a.537920004
push edx
mov ecx, edi
call fcn.1013ca50
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
sub esp, 8
mulsd xmm0, qword [0x103f9488]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10160460
fstp dword [edi + 0x544]
add esp, 8
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2abf8], xmm0
jmp case.0x10153b4a.537920004
sub esi, 0x20100100
je 0x101539d6
sub esi, 2
jne case.0x10153b4a.537920004
push dword [edi + 0x54800]
mov eax, 0x40
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0xdb4]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
mov eax, 7
cmp dword [esp + 0xc], eax
push 1
cmovb eax, dword [esp + 0x10]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x80]
push eax
call dword [edx + 8]
movzx eax, byte [esp + 0x78]
cdq
mov dword [edi + 0x54850], eax
mov eax, 1
mov byte [esp + 0x7f], 0
mov dword [edi + 0x54854], edx
mov dword [esp + 0x18], eax
nop word [eax + eax]
mov al, byte [esp + eax + 0x78]
test al, al
je 0x10153a5d
mov ecx, dword [edi + 0x54850]
mov esi, dword [edi + 0x54854]
shld esi, ecx, 8
movzx eax, al
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov dword [edi + 0x54854], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [edi + 0x54850], ecx
mov dword [esp + 0x18], eax
cmp eax, 7
jb 0x10153a20
push dword [edi + 0x54854]
mov ecx, edi
push dword [edi + 0x54850]
call fcn.10139070
jmp case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x3c]
cdq
mov edi, eax
mov eax, edx
shld eax, edi, 8
mov ecx, dword [ecx + 0x54800]
mov dword [esp + 0x18], 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 + 0x18]
or esi, edi
mov edi, dword [esp + 0x3c]
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov ecx, dword [edi + 0x54800]
shl esi, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cdq
or eax, esi
mov dword [edi + 0x4a8], 0x80008
or edx, dword [esp + 0x18]
mov dword [edi + 0x420], eax
mov ecx, edx
mov dword [edi + 0x424], edx
jne 0x10153afd
cmp eax, 0x20000
jb 0x10153b0c
test ecx, ecx
jne 0x10153b0c
cmp eax, 0x4ffff
jbe case.0x10153b4a.537920004
and eax, 0x10
or eax, 0
je case.0x10153b4a.537920004
mov eax, 9
mov word [edi + 0x4aa], ax
jmp case.0x10153b4a.537920004
cmp esi, 0x20100301
ja 0x10153d11
je 0x10153cca
add esi, 0xdfeffdfe
cmp esi, 8
ja case.0x10153b4a.537920004
jmp dword [esi*4 + 0x10154910]
cmp byte [edi + 0x304], 0
lea edx, [edi + 0x304]
jne case.0x10153b4a.537920004
push dword [edi + 0x54800]
mov eax, 0x80
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
push edx
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
mov eax, 0x80
cmp dword [esp + 0xc], eax
cmovb eax, dword [esp + 0xc]
jmp 0x10152b1c
mov ecx, edi
call fcn.1013c960
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102c7cb4]
movss dword [esp], xmm0
movsd xmm0, qword [0x103f9530]
call fcn.1027f670
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10160460
fstp dword [edi + 0x528]
add esp, 8
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102c7cb4]
movss dword [esp], xmm0
movsd xmm0, qword [0x103f9530]
call fcn.1027f670
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10160460
fstp dword [edi + 0x52c]
add esp, 8
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x520], xmm0
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x102c7e8c]
movss dword [edi + 0x524], xmm0
jbe case.0x10153b4a.537920004
mov eax, dword [edi + 0x520]
mov dword [edi + 0x524], eax
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102c7cb4]
movss dword [esp], xmm0
movsd xmm0, qword [0x103f9530]
call fcn.1027f670
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.10160460
fstp dword [edi + 0x548]
add esp, 8
jmp case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x54800]
shl eax, 8
cdq
mov dword [edi + 0x560], eax
mov dword [edi + 0x564], edx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cdq
or dword [edi + 0x560], eax
or dword [edi + 0x564], edx
jmp case.0x10153b4a.537920004
cmp esi, 0x20200307
ja 0x10153ddc
je 0x10153db4
cmp esi, 0x20100303
je 0x10153d8b
cmp esi, 0x20100403
je 0x10153d62
cmp esi, 0x20200306
jne case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x3b]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov al, byte [esp + 0x3b]
mov byte [edi + 0xbea], al
jmp case.0x10153b4a.537920004
push dword [edi + 0x54800]
mov eax, 0x80
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0x678]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
push dword [edi + 0x54800]
mov eax, 0x80
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0x568]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
lea esi, [edi + 0xbec]
mov dword [esp + 0x18], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 0x18], 1
lea esi, [esi + 2]
mov word [esi - 2], ax
jne 0x10153dc2
jmp case.0x10153b4a.537920004
cmp esi, 0x20200401
je 0x10153f32
cmp esi, 0x20401306
je 0x10153ea8
cmp esi, 0x20501500
jne case.0x10153b4a.537920004
mov eax, dword [edi + 0x54850]
or eax, dword [edi + 0x54854]
je case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
mov edx, dword [edi + 0x54850]
mov ecx, dword [edi + 0x54854]
movzx eax, ax
cmp edx, 0x34303430
jne 0x10153e35
cmp ecx, 0x44
je 0x10153e93
cmp edx, 0x30303336
jne 0x10153e42
cmp ecx, 0x53
je 0x10153e93
cmp dword [esp + 0xc], 1
jne 0x10153e93
mov ecx, 0xffff8000
cmp ax, cx
je case.0x10153b4a.537920004
test ax, ax
je case.0x10153b4a.537920004
mov ecx, 0xc7
cmp ax, cx
cwde
jle 0x10153e94
movss xmm0, dword [0x102c7e84]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x102c7cc0]
subss xmm0, xmm1
movss dword [edi + 0x2abf0], xmm0
jmp case.0x10153b4a.537920004
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2abf0], xmm0
jmp case.0x10153b4a.537920004
mov ecx, edi
call fcn.1013c960
movzx eax, ax
test eax, eax
je case.0x10153b4a.537920004
cmp eax, 0x64
je case.0x10153b4a.537920004
cmp eax, 0x3d
jae 0x10153ed1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
jmp 0x10153ee3
add eax, 0xffffffe0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x102c7d60]
cmp dword [edi + 0x54850], 0x34353933
movss dword [edi + 0x2abec], xmm0
jne case.0x10153b4a.537920004
cmp dword [edi + 0x54854], 0x44
jne case.0x10153b4a.537920004
movss xmm0, dword [edi + 0x2ac04]
comiss xmm0, dword [0x102c7eb4]
jbe case.0x10153b4a.537920004
addss xmm0, dword [edi + 0x2abec]
movss dword [edi + 0x2abec], xmm0
jmp case.0x10153b4a.537920004
push edx
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2abe4]
jmp case.0x10153b4a.537920004
push 6
lea eax, [edi + 0xc4]
push str.PENTAX
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x10154316
push 6
lea eax, [edi + 0x104]
push str.PENTAX
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x10154316
push 7
lea eax, [edi + 0xc4]
push str.SAMSUNG
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x10153fa5
cmp dword [ebp + 0x10], 1
je 0x10154316
push 7
lea eax, [edi + 0xc4]
push str.SAMSUNG
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x1015418b
cmp dword [ebp + 0x10], 2
jne 0x1015418b
cmp esi, 2
jne 0x10154034
mov ecx, edi
call fcn.10135240
cmp eax, 0x2000
jne 0x10153ff1
mov eax, 0x11
mov word [edi + 0x4ba], ax
jmp case.0x10153b4a.537920004
push 7
lea eax, [edi + 0x104]
push str.NX_mini
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x1015401c
mov eax, 0x13
mov word [edi + 0x4ba], ax
jmp case.0x10153b4a.537920004
mov eax, 0x63
mov word [edi + 0x4ba], ax
mov word [edi + 0x4aa], ax
jmp case.0x10153b4a.537920004
cmp esi, 3
jne 0x1015405b
mov ecx, edi
call fcn.10135240
mov dword [edi + 0x5484c], eax
mov dword [edi + 0x4b0], eax
mov dword [edi + 0x4b4], 0
jmp case.0x10153b4a.537920004
cmp esi, 0x43
jne 0x101540ab
mov ecx, edi
call fcn.10135240
test eax, eax
je case.0x10153b4a.537920004
movd xmm0, eax
mov ecx, edi
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2abec], xmm0
call fcn.10135240
cmp eax, 0xa
jne case.0x10153b4a.537920004
movss xmm0, dword [edi + 0x2abec]
divss xmm0, dword [0x103f96e0]
movss dword [edi + 0x2abec], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0xa003
jne 0x101540e3
mov ecx, edi
call fcn.1013c960
movzx eax, ax
cdq
mov dword [edi + 0x420], eax
or eax, edx
mov dword [edi + 0x424], edx
je case.0x10153b4a.537920004
mov eax, 0x11
mov word [edi + 0x4aa], ax
jmp case.0x10153b4a.537920004
cmp esi, 0xa005
jne 0x10154114
push dword [edi + 0x54800]
mov eax, 0x80
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0x384]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
cmp esi, 0xa019
jne 0x10154132
push dword [esp + 0x28]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x544]
jmp case.0x10153b4a.537920004
cmp esi, 0xa01a
jne case.0x10153b4a.537920004
mov ecx, edi
call fcn.10135240
movss xmm1, dword [0x103f96e0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103f9b80]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
comiss xmm1, xmm0
movss dword [edi + 0x6fc], xmm0
jbe case.0x10153b4a.537920004
mulss xmm0, xmm1
movss dword [edi + 0x6fc], xmm0
jmp case.0x10153b4a.537920004
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 6
lea eax, [edi + 0xc4]
push str.Konica
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 7
lea eax, [edi + 0xc4]
push str.Minolta
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 0xa
lea eax, [edi + 0xc4]
push str.Hasselblad
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10153b4a.537920004
push 7
lea eax, [edi + 0x104]
push str.Stellar
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 5
lea eax, [edi + 0x104]
push str.Lunar
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 5
lea eax, [edi + 0x104]
push str.Lusso
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x1015426f
push 2
lea eax, [edi + 0x104]
push 0x102b6160
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10153b4a.537920004
lea eax, [esp + 0x80]
mov ecx, edi
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x114]
push eax
push 2
push dword [esp + 0x58]
push dword [esp + 0x78]
push esi
call fcn.1013b700
jmp case.0x10153b4a.537920004
cmp esi, 5
jne 0x10154335
mov ecx, edi
call fcn.10135240
push eax
mov ecx, edi
mov dword [edi + 0x5484c], eax
call fcn.10139200
jmp case.0x10153b4a.537920004
cmp esi, 0xd
jne 0x1015434d
mov ecx, edi
call fcn.1013c960
mov word [edi + 0xd54], ax
jmp case.0x10153b4a.537920004
cmp esi, 0xe
jne 0x10154365
mov ecx, edi
call fcn.1013c960
mov word [edi + 0xd56], ax
jmp case.0x10153b4a.537920004
cmp esi, 0xf
jne 0x10154380
push dword [esp + 0x28]
mov ecx, edi
call fcn.1013ca20
mov dword [edi + 0xd58], eax
jmp case.0x10153b4a.537920004
cmp esi, 0x10
jne 0x10154398
mov ecx, edi
call fcn.1013c960
mov word [edi + 0xd5c], ax
jmp case.0x10153b4a.537920004
cmp esi, 0x13
jne 0x101543c3
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x103f96e0]
movss dword [edi + 0x544], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0x14
jne 0x101543df
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
push eax
call fcn.101395a0
jmp case.0x10153b4a.537920004
cmp esi, 0x1d
jne 0x10154418
mov ecx, edi
call fcn.10135240
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103f9b80]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x103f9710]
movss dword [edi + 0x540], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0x34
jne 0x1015444a
xor esi, esi
nop
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x27]
push 1
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov al, byte [esp + 0x27]
mov byte [edi + esi + 0xd5e], al
inc esi
cmp esi, 4
jb 0x10154420
jmp case.0x10153b4a.537920004
cmp esi, 0x38
jne 0x10154470
mov ecx, edi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0xb4], ax
call fcn.1013c960
mov word [edi + 0xb6], ax
jmp case.0x10153b4a.537920004
cmp esi, 0x39
jne 0x10154496
mov ecx, edi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0xb8], ax
call fcn.1013c960
mov word [edi + 0xba], ax
jmp case.0x10153b4a.537920004
cmp esi, 0x3f
jne 0x101544ce
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x54800]
mov esi, eax
shl esi, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
or eax, esi
cdq
mov dword [edi + 0x420], eax
mov dword [edi + 0x424], edx
jmp case.0x10153b4a.537920004
cmp esi, 0x47
jne 0x101544f4
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2abec], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0x4d
jne 0x10154544
cmp dword [esp + 0x28], 9
jne 0x1015451a
push 9
mov ecx, edi
call fcn.1013ca50
fmul qword [0x102c7cf8]
fstp dword [edi + 0x2abe4]
jmp case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x103f96c0]
movss dword [edi + 0x2abe4], xmm0
jmp case.0x10153b4a.537920004
cmp esi, 0x72
jne 0x1015455c
mov ecx, edi
call fcn.1013c960
mov word [edi + 0xd62], ax
jmp case.0x10153b4a.537920004
cmp esi, 0x7e
jne 0x10154587
mov ecx, edi
call fcn.10135240
neg eax
mov dword [edi + 0x24f68], eax
mov dword [edi + 0x24f64], eax
mov dword [edi + 0x24f60], eax
mov dword [edi + 0x24f5c], eax
jmp case.0x10153b4a.537920004
cmp esi, 0x207
jne 0x101545b1
mov eax, dword [esp + 0xc]
cmp eax, 0xffff
jae case.0x10153b4a.537920004
push eax
push dword [edi + 0x4b0]
mov ecx, edi
call fcn.10139920
jmp case.0x10153b4a.537920004
lea eax, [esi - 0x20d]
cmp eax, 7
ja 0x101545fc
mov dword [esp + 0x14], 0
mov ecx, edi
call fcn.1013c960
mov ecx, dword [esp + 0x14]
movzx edx, ax
mov eax, dword [esi*4 + 0x10415644]
shr ecx, 1
xor ecx, dword [esp + 0x14]
lea eax, [ecx + eax*4]
mov dword [edi + eax*4 + 0x29390], edx
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 4
jb 0x101545c4
jmp case.0x10153b4a.537920004
cmp esi, 0x221
jne 0x101546bb
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [esp + 0x18], eax
cmp eax, 0x40
ja case.0x10153b4a.537920004
test eax, eax
je case.0x10153b4a.537920004
lea esi, [edi + 0x2a394]
nop dword [eax]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, 0xcfc6
sub ecx, eax
push 1
push 0
push 2
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x103f9b80]
cvtpd2ps xmm0, xmm0
movss dword [esi - 4], xmm0
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [esi + 0xc], 0x46000000
mov dword [esi + 4], 0x46000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 8], xmm0
add esi, 0x14
sub dword [esp + 0x18], 1
jne 0x10154630
jmp case.0x10153b4a.537920004
cmp esi, 0x215
jne 0x101546f5
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x10
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.10135240
push eax
lea eax, [edi + 0xdb4]
push 0x103f1180
push eax
call fcn.10007a60
add esp, 0xc
jmp case.0x10153b4a.537920004
cmp esi, 0x229
jne 0x10154726
push dword [edi + 0x54800]
mov eax, 0x40
cmp dword [esp + 0x10], eax
cmovb eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0xd74]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x10153b4a.537920004
cmp esi, 0x22d
jne 0x101547b3
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x18]
xor esi, esi
mov dword [esp + 0x18], esi
cmp dword [0x10415ebc], esi
jle case.0x10153b4a.537920004
nop
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10415ebc]
mov dword [esp + 0x4c], eax
cmp eax, ecx
jge 0x101547a5
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.1013c960
movzx edx, ax
mov ecx, esi
mov eax, dword [esp + 0x4c]
shr ecx, 1
xor ecx, esi
inc esi
mov eax, dword [eax*4 + 0x10415e98]
lea eax, [ecx + eax*4]
mov dword [edi + eax*4 + 0x29390], edx
cmp esi, 4
jb 0x10154770
mov ecx, dword [0x10415ebc]
mov esi, dword [esp + 0x18]
inc esi
mov dword [esp + 0x18], esi
cmp esi, ecx
jl 0x10154750
jmp case.0x10153b4a.537920004
cmp esi, 0x239
jne case.0x10153b4a.537920004
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0xc
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [edi + 0x54800]
lea esi, [edi + 0x428]
push 1
push 0x1e
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [esi + 0x1d], 0
lea edi, [esi - 1]
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x101547f0
mov ax, word [0x102b6128]
lea edx, [esp + 0xdc]
mov ecx, dword [esp + 0x3c]
mov word [edi], ax
push 1
push 0x14
mov ecx, dword [ecx + 0x54800]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
lea edx, [esp + 0xdc]
mov byte [esp + 0xef], 0
mov ecx, edx
mov dword [esp + 0x18], ecx
mov al, byte [edx]
inc edx
test al, al
jne 0x10154833
sub edx, ecx
dec esi
nop dword [eax]
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10154840
mov edi, esi
mov ecx, edx
mov esi, dword [esp + 0x18]
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 + 0x3c]
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0x70]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x101532c1
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0xa8]
jmp 0x10152790