Function at 0x100e7730
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
sub esp, 0x19c
mov eax, dword [0x102832a0]
xor eax, esp
mov dword [esp + 0x198], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1ac]
movzx eax, word [esi + 0x6244]
mov ecx, dword [esi]
mov ecx, dword [ecx]
push edi
push 0xa
push 1
lea edx, [esp + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 4]
xor edi, edi
push edx
push eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], edi
xor ebx, ebx
xor ebp, ebp
call ecx
push 3
lea edx, [esp + 0x6c]
push 0x101d087c
push edx
call fcn.10108f1d
add esp, 0x1c
test eax, eax
je 0x100e8975
push 3
lea eax, [esp + 0x5c]
push 0x101d0878
push eax
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e8975
push 4
lea ecx, [esp + 0x5c]
push str.IIII
push ecx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e8975
push 4
lea edx, [esp + 0x5c]
push str.MMMM
push edx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e8975
push 2
lea eax, [esp + 0x5c]
push 0x101d0864
push eax
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e8893
push 3
lea ecx, [esp + 0x5c]
push 0x101d0860
push ecx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e8893
mov ecx, str.Nikon
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7850
test dl, dl
je 0x100e784c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7850
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7830
xor eax, eax
jmp 0x100e7855
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e78aa
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
push esi
mov dword [esp + 0x1bc], eax
call fcn.100d81e0
push esi
mov word [esi + 0x6244], ax
call fcn.100d81e0
add esp, 0xc
cmp ax, 0x2a
jne 0x100e8969
push esi
call fcn.100d8280
mov edx, dword [esi]
mov ecx, dword [edx + 8]
add eax, 0xfffffff8
push 1
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0x10
jmp 0x100e7b22
mov ecx, 0x101cc358
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e78d3
test dl, dl
je 0x100e78cf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e78d3
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e78b3
xor eax, eax
jmp 0x100e78d8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e791b
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
mov edx, dword [esi]
mov ecx, dword [edx + 8]
sub eax, 0xa
push 1
mov dword [esp + 0x1bc], eax
mov eax, dword [esi + 4]
push 0xfffffffffffffffe
push eax
call ecx
push esi
call fcn.100d81e0
push esi
mov word [esi + 0x6244], ax
call fcn.100d81e0
add esp, 0x18
jmp 0x100e7b22
push 8
lea edx, [esp + 0x5c]
push str.FUJIFILM
push edx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e7b04
push 4
lea eax, [esp + 0x5c]
push str.SONY
push eax
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100e7b04
mov ecx, str.Panasonic
lea eax, [esp + 0x58]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7980
test dl, dl
je 0x100e797c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7980
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7960
xor eax, eax
jmp 0x100e7985
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7b04
mov ecx, str.OLYMP
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e79b6
test dl, dl
je 0x100e79b2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e79b6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7996
xor eax, eax
jmp 0x100e79bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7af3
mov ecx, str.LEICA
lea eax, [esp + 0x58]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e79f0
test dl, dl
je 0x100e79ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e79f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e79d0
xor eax, eax
jmp 0x100e79f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7af3
mov ecx, str.Ricoh
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7a26
test dl, dl
je 0x100e7a22
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7a26
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7a06
xor eax, eax
jmp 0x100e7a2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7af3
mov ecx, str.EPSON
lea eax, [esp + 0x58]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7a60
test dl, dl
je 0x100e7a5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7a60
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7a40
xor eax, eax
jmp 0x100e7a65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7af3
mov ecx, 0x101d081c
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7a96
test dl, dl
je 0x100e7a92
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7a96
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7a76
xor eax, eax
jmp 0x100e7a9b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7ae2
mov ecx, 0x101d0818
lea eax, [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7ac8
test dl, dl
je 0x100e7ac4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7ac8
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7aa8
xor eax, eax
jmp 0x100e7acd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e7ae2
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffff6
push edx
call eax
jmp 0x100e7b1f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffc
push edx
call eax
jmp 0x100e7b1f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffe
push edx
call eax
jmp 0x100e7b1f
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 1
mov ecx, 0x4949
mov word [esi + 0x6244], cx
mov ecx, dword [edx + 8]
push 2
push eax
call ecx
add esp, 0xc
push esi
call fcn.100d81e0
movzx eax, ax
add esp, 4
cmp eax, 0x3e8
ja 0x100e8975
test eax, eax
je 0x100e8969
mov edi, dword [esp + 0x1b8]
shl edi, 0x10
mov dword [esp + 0x3c], edi
jmp 0x100e7b55
mov edi, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x30], eax
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x1bc]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
push esi
call fcn.100e7610
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
or ebx, edi
add esp, 0x18
mov dword [esp + 0x28], ebx
cmp ebx, 2
jne 0x100e7bd3
lea ecx, [esi + 0x6455]
push 0x101cc378
push ecx
call fcn.10106e60
add esp, 8
test eax, eax
je 0x100e7e65
push esi
call fcn.100d81e0
push esi
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x18], edx
add esp, 8
fild dword [esp + 0x10]
fstp dword [esi + 0x6560]
jmp 0x100e7e65
cmp ebx, 4
jne 0x100e7cdb
mov eax, dword [esp + 0x1c]
add eax, 0xffffffe5
cmp eax, 7
ja 0x100e7e65
push esi
call fcn.100d8280
push esi
call fcn.100d81e0
movzx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 8
fild dword [esp + 0x10]
fmul qword [0x101d0810]
fsub qword [0x1026c050]
fld qword [0x1026c020]
fxch st(1)
call fcn.1010d9f0
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
push esi
fmul qword [0x1026bdd8]
fstp dword [esi + 0x6560]
call fcn.100d81e0
push esi
call fcn.100d81e0
movzx eax, ax
add esp, 8
cmp eax, 0x7fff
je 0x100e7c77
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jge 0x100e7c5e
fadd qword [0x1026bd98]
fmul qword [0x101d0808]
fld qword [0x1026c020]
fxch st(1)
call fcn.1010d9f0
fstp dword [esi + 0x6568]
push esi
call fcn.100d81e0
movzx eax, ax
add esp, 4
cmp eax, 0xffff
je 0x100e7cae
movsx edx, ax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x101d0800]
fld qword [0x1026c020]
fxch st(1)
call fcn.1010d9f0
fstp dword [esi + 0x6564]
push esi
call fcn.100d81e0
push esi
call fcn.100d81e0
movzx eax, ax
push esi
mov dword [esp + 0x40], eax
call fcn.100d81e0
push esi
call fcn.100d81e0
movzx ecx, ax
mov dword [esi + 0x6578], ecx
jmp 0x100e7e62
cmp ebx, 8
jne 0x100e7cfd
cmp ebp, 4
jne 0x100e7e65
push esi
call fcn.100d8280
add esp, 4
mov dword [esi + 0x6578], eax
jmp 0x100e7e65
cmp ebx, 9
jne 0x100e7d57
mov edi, 0x101cc380
lea eax, [esi + 0x6455]
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x100e7d30
test cl, cl
je 0x100e7d2c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x100e7d30
add eax, 2
add edi, 2
test cl, cl
jne 0x100e7d10
xor eax, eax
jmp 0x100e7d35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7e65
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 1
push 0x40
lea eax, [esi + 0x6515]
push eax
push ecx
call edx
jmp 0x100e7e62
cmp ebx, 0xc
jne 0x100e7d86
cmp dword [esp + 0x1c], 4
jne 0x100e7e65
push ebp
push esi
call fcn.100d8300
fstp dword [esi + 0xe6c4]
push ebp
push esi
call fcn.100d8300
fstp dword [esi + 0xe6cc]
jmp 0x100e7e62
cmp ebx, 0x10
jne 0x100e7da8
cmp ebp, 4
jne 0x100e7e65
push esi
call fcn.100d8280
add esp, 4
mov dword [esi + 0x6588], eax
jmp 0x100e7e65
cmp ebx, 0x11
jne 0x100e7e0c
cmp dword [esi + 0x65e4], 0
je 0x100e7e65
push 5
lea eax, [esi + 0x6455]
push 0x101cc378
push eax
call fcn.10108f1d
add esp, 0xc
test eax, eax
jne 0x100e7e65
mov eax, dword [esi]
push 0
push esi
mov dword [esp + 0x18], eax
call fcn.100d8280
mov edi, dword [esp + 0x1bc]
mov ecx, dword [esi + 4]
add eax, edi
add esp, 4
push eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
call edx
push edi
push esi
call fcn.100ed090
add esp, 0x14
jmp 0x100e7e65
cmp ebx, 0x14
jne 0x100e7e3a
cmp dword [esp + 0x1c], 0xa00
jne 0x100e7e65
cmp ebp, 7
jne 0x100e7e65
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x4e0
push ecx
call edx
add esp, 0xc
jmp 0x100e86f4
cmp ebx, 0x15
jne 0x100e7e65
cmp ebp, 2
jne 0x100e7e65
cmp dword [esi + 0x65e4], 0
je 0x100e7e65
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x40
lea ecx, [esi + 0x6495]
push ecx
push edx
call eax
add esp, 0x10
lea ecx, [esi + 0x6455]
push 0x101cc350
push ecx
call fcn.10106e60
add esp, 8
test eax, eax
je 0x100e7ea3
cmp ebx, 0x1b
jne 0x100e7e90
mov ebx, 0x1018
mov dword [esp + 0x28], ebx
jmp 0x100e86c1
cmp ebx, 0x1c
jne 0x100e7ea3
mov ebx, 0x1017
mov dword [esp + 0x28], ebx
jmp 0x100e8691
cmp ebx, 0x1d
jne 0x100e7f13
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edi, eax
add esp, 4
test edi, edi
je 0x100e886d
cmp edi, 0xffffffff
je 0x100e886d
push edi
call fcn.101093a2
add esp, 4
test eax, eax
je 0x100e7edb
add edi, 0xffffffd0
jmp 0x100e7eec
mov eax, 0xcccccccd
mul edi
shr edx, 3
lea edx, [edx + edx*4]
add edx, edx
sub edi, edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esi]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*2]
mov eax, dword [esi + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edi, eax
add esp, 4
test edi, edi
jne 0x100e7ec0
jmp 0x100e886d
cmp ebx, 0x81
jne 0x100e7f70
cmp ebp, 4
jne 0x100e7fee
push esi
call fcn.100d8280
mov edx, dword [esi]
mov dword [esi + 0x6590], eax
mov ecx, dword [edx + 8]
add eax, 0x29
push 0
push eax
mov eax, dword [esi + 4]
push eax
call ecx
push esi
call fcn.100d81e0
add ax, ax
push esi
mov word [esi + 0x65fc], ax
call fcn.100d81e0
add esp, 0x18
mov word [esi + 0x65fe], ax
mov dword [esi + 0x6580], 0x61616161
jmp 0x100e886d
cmp ebx, 0x29
jne 0x100e7fe6
cmp ebp, 1
jne 0x100e886d
mov eax, dword [esp + 0x34]
cmp eax, 0x12
jae 0x100e7f93
movsx eax, byte [eax + 0x101d07e8]
sub eax, 0x30
jmp 0x100e7f95
xor eax, eax
mov edx, dword [esi]
mov ecx, dword [edx + 8]
shl eax, 5
add eax, 8
push 1
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0xc
xor edi, edi
mov edi, edi
push esi
call fcn.100d8280
add esp, 4
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jge 0x100e7fcb
fadd dword [0x101cb844]
mov edx, edi
xor edx, 2
shr edx, 1
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0xe6c4]
cmp edi, 4
jb 0x100e7fb0
jmp 0x100e886d
cmp ebx, 0x100
jne 0x100e7ff8
cmp ebp, 7
je 0x100e8009
jmp 0x100e886d
cmp ebx, 0x280
jne 0x100e8029
cmp ebp, 1
jne 0x100e886d
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
push ecx
call edx
mov edi, dword [esp + 0x20]
add esp, 4
mov dword [esi + 0x6594], eax
mov dword [esi + 0x65a0], edi
jmp 0x100e802d
mov edi, dword [esp + 0x1c]
cmp ebx, 0x88
jne 0x100e8069
cmp ebp, 4
jne 0x100e886d
push esi
call fcn.100d8280
add esp, 4
mov dword [esi + 0x6594], eax
test eax, eax
je 0x100e886d
mov ecx, dword [esp + 0x1b4]
add eax, ecx
mov dword [esi + 0x6594], eax
jmp 0x100e886d
cmp ebx, 0x89
jne 0x100e808e
cmp ebp, 4
jne 0x100e886d
push esi
call fcn.100d8280
add esp, 4
mov dword [esi + 0x65a0], eax
jmp 0x100e886d
cmp ebx, 0x8c
je 0x100e809e
cmp ebx, 0x96
jne 0x100e80b2
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
add esp, 4
mov dword [esi + 0x6598], eax
cmp ebx, 0x97
jne 0x100e81ed
mov ebp, dword [esp + 0x24]
mov edi, 4
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
shl ebp, 4
add esp, 4
sub edi, 1
lea ebp, [eax + ebp - 0x30]
jne 0x100e80c7
mov eax, ebp
sub eax, 0x100
mov dword [esp + 0x24], ebp
je 0x100e8155
sub eax, 2
je 0x100e8141
sub eax, 1
jne 0x100e819e
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x10
push eax
call ecx
add esp, 0xc
lea edi, [esi + 0xe6c4]
mov ebx, 4
lea esp, [esp]
push esi
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x14], edx
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100e8120
jmp 0x100e819e
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 6
push ecx
call edx
jmp 0x100e8809
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x44
push ecx
call edx
add esp, 0xc
xor edi, edi
lea esp, [esp]
push esi
call fcn.100d81e0
movzx eax, ax
mov ecx, edi
and ecx, 1
mov edx, edi
mov dword [esp + 0x14], eax
add ecx, ecx
shr edx, 1
fild dword [esp + 0x14]
or ecx, edx
inc edi
add esp, 4
fstp dword [esi + ecx*4 + 0xe6c4]
cmp edi, 4
jb 0x100e8170
and ebp, 0xffffff00
cmp ebp, 0x200
jne 0x100e886d
cmp dword [esp + 0x24], 0x205
je 0x100e81cf
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x118
push ecx
call edx
add esp, 0xc
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x144
lea ecx, [esp + 0x6c]
push ecx
push edx
call eax
add esp, 0x10
jmp 0x100e886d
cmp ebx, 0xa4
jne 0x100e8245
cmp ebp, 3
jne 0x100e886d
mov eax, dword [esp + 0x34]
mov ecx, dword [esi]
mov ecx, dword [ecx + 8]
lea edx, [eax + eax*2]
mov eax, dword [esi + 4]
push 1
shl edx, 4
push edx
push eax
call ecx
add esp, 0xc
lea edi, [esi + 0xe6c4]
mov ebx, ebp
push esi
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x14], edx
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100e8221
jmp 0x100e886d
cmp ebx, 0xa7
jne 0x100e8363
mov eax, dword [esp + 0x24]
and eax, 0xffffff00
cmp eax, 0x200
jne 0x100e886d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi]
and ecx, 0xff
movzx edx, byte [ecx + 0x101cdf80]
mov ecx, dword [esi + 4]
mov byte [esp + 0x1b], dl
mov edx, dword [eax + 0x1c]
push ecx
call edx
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
push ecx
call edx
mov ecx, dword [esi + 4]
xor edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
push ecx
call edx
mov ecx, dword [esi + 4]
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
push ecx
xor ebx, edi
call edx
xor eax, ebx
mov dl, byte [eax + 0x101ce080]
mov al, byte [esp + 0x2b]
mov bl, 0x60
add esp, 0x10
xor ecx, ecx
imul bl
add dl, al
xor byte [esp + ecx + 0x64], dl
add al, byte [esp + 0x1b]
inc ecx
cmp ecx, 0x144
jb 0x100e82c3
mov ebp, dword [esp + 0x24]
xor ebx, ebx
xor edi, edi
cmp ebp, 0x205
sete bl
lea ebx, [ebx*8 + 6]
lea ebx, [esp + ebx + 0x64]
push ebx
push esi
call fcn.100d81b0
movzx eax, ax
mov ecx, edi
shr ecx, 1
mov dword [esp + 0x18], eax
xor ecx, edi
inc edi
fild dword [esp + 0x18]
add esp, 8
add ebx, 2
fstp dword [esi + ecx*4 + 0xe6c4]
cmp edi, 4
jb 0x100e82f2
cmp ebp, 0x209
jne 0x100e886d
xor edi, edi
lea ebx, [esp + 0x6e]
nop
push ebx
push esi
call fcn.100d81b0
movzx edx, ax
mov eax, edi
xor eax, 2
shr eax, 1
mov dword [esp + 0x18], edx
xor eax, edi
inc edi
fild dword [esp + 0x18]
add esp, 8
add ebx, 2
fstp dword [esi + eax*4 + 0xe6c4]
cmp edi, 4
jb 0x100e8330
jmp 0x100e886d
cmp ebx, 0x200
jne 0x100e83d4
cmp edi, 3
jne 0x100e838a
push esi
call fcn.100d8280
push esi
call fcn.100d8280
add esp, 8
mov dword [esi + 0x6578], eax
jmp 0x100e886d
cmp edi, 4
jne 0x100e886d
push esi
call fcn.100d81e0
push esi
movzx edi, ax
call fcn.100d81e0
movzx ecx, ax
push esi
add edi, ecx
call fcn.100d81e0
movzx edx, ax
push esi
add edi, edx
call fcn.100d81e0
movzx eax, ax
add eax, edi
cdq
and edx, 3
add eax, edx
add esp, 0x10
sar eax, 2
mov dword [esi + 0x65c8], eax
jmp 0x100e886d
cmp ebx, 0x201
jne 0x100e83ea
cmp edi, 4
je 0x100e880c
jmp 0x100e886d
cmp ebx, 0x401
jne 0x100e842c
cmp edi, 4
jne 0x100e886d
push esi
call fcn.100d8280
push esi
mov edi, eax
call fcn.100d8280
push esi
add edi, eax
call fcn.100d8280
push esi
add edi, eax
call fcn.100d8280
add eax, edi
add esp, 0x10
shr eax, 2
mov dword [esi + 0x65c8], eax
jmp 0x100e886d
cmp ebx, 0xe01
jne 0x100e84e7
movsx eax, word [esi + 0x6244]
mov edx, dword [esi]
push 1
mov dword [esp + 0x24], eax
mov eax, dword [esi + 4]
mov ecx, 0x4949
mov word [esi + 0x6244], cx
mov ecx, dword [edx + 8]
push 0x16
push eax
call ecx
add esp, 0xc
cmp dword [esp + 0x1c], 0x2c
mov ebp, 0x16
jbe 0x100e84d3
lea ecx, [ecx]
push esi
call fcn.100d8280
mov edx, dword [esi]
mov ecx, dword [edx + 8]
mov ebx, eax
mov eax, dword [esi + 4]
push 1
push 0xe
push eax
mov dword [esp + 0x38], ebx
call ecx
push esi
call fcn.100d8280
mov edi, eax
add esp, 0x14
sub edi, 4
cmp ebx, 0x76a43207
jne 0x100e84b5
push esi
call fcn.100d81e0
movzx edx, ax
add esp, 4
mov dword [esi + 0x6614], edx
jmp 0x100e84c6
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push edi
push ecx
call edx
add esp, 0xc
lea ebp, [edi + ebp + 0x16]
lea eax, [ebp + 0x16]
cmp eax, dword [esp + 0x1c]
jb 0x100e8470
mov cx, word [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov word [esi + 0x6244], cx
cmp ebx, 0xe80
jne 0x100e856d
cmp edi, 0x100
jne 0x100e886d
cmp ebp, 7
jne 0x100e886d
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x30
push eax
call ecx
push esi
call fcn.100d81e0
movzx edx, ax
imul edx, edx, 0x1fc
mov dword [esp + 0x20], edx
push esi
fild dword [esp + 0x24]
fmul qword [0x101d07e0]
fmul qword [0x1026bd28]
fstp dword [esi + 0xe6c4]
call fcn.100d81e0
movzx eax, ax
add esp, 0x14
imul eax, eax, 0x17e
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x101d07d8]
fmul qword [0x1026bd28]
fstp dword [esi + 0xe6cc]
jmp 0x100e886d
cmp ebx, 0xf00
jne 0x100e85ce
cmp ebp, 7
jne 0x100e886d
cmp edi, 0x266
jne 0x100e85a0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xb0
push edx
call eax
add esp, 0xc
jmp 0x100e86f4
cmp edi, 0x2de
je 0x100e85b4
cmp edi, 0x5de
jne 0x100e886d
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x94
push edx
call eax
add esp, 0xc
jmp 0x100e86f4
cmp ebx, 0x1011
jne 0x100e85e0
cmp edi, 9
je 0x100e85e8
jmp 0x100e886d
cmp ebx, 0x20400200
jne 0x100e8641
lea ecx, [esi + 0xe6e4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 3
lea ebx, [ebx]
mov edi, dword [esp + 0x38]
mov ebp, 3
lea esp, [esp]
push esi
call fcn.100d81e0
movsx edx, ax
mov dword [esp + 0x18], edx
add esp, 4
add edi, 4
sub ebp, 1
fild dword [esp + 0x14]
fmul qword [0x1026c040]
fstp dword [edi - 4]
jne 0x100e8610
add dword [esp + 0x38], 0x10
sub dword [esp + 0x10], 1
jne 0x100e8600
cmp ebx, 0x1012
je 0x100e8651
cmp ebx, 0x20400600
jne 0x100e8681
mov edi, 4
cmp dword [esp + 0x1c], edi
jne 0x100e8681
mov dword [esi + 0x65c8], 0
push esi
call fcn.100d81e0
movzx eax, ax
add eax, eax
add eax, eax
add dword [esi + 0x65c8], eax
add esp, 4
sub edi, 1
jne 0x100e8666
cmp ebx, 0x1017
je 0x100e8691
cmp ebx, 0x20400100
jne 0x100e86b1
push esi
call fcn.100d81e0
movzx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 4
fild dword [esp + 0x14]
fmul qword [0x1026c040]
fstp dword [esi + 0xe6c4]
cmp ebx, 0x1018
je 0x100e86c1
cmp ebx, 0x20400100
jne 0x100e86e1
push esi
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x18], edx
add esp, 4
fild dword [esp + 0x14]
fmul qword [0x1026c040]
fstp dword [esi + 0xe6cc]
cmp ebx, 0x2011
jne 0x100e873d
cmp dword [esp + 0x1c], 2
jne 0x100e886d
mov eax, 0x4d4d
push esi
mov word [esi + 0x6244], ax
call fcn.100d81e0
movzx ecx, ax
mov dword [esp + 0x18], ecx
push esi
fild dword [esp + 0x1c]
fmul qword [0x1026c040]
fstp dword [esi + 0xe6c4]
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x1c], edx
add esp, 8
fild dword [esp + 0x14]
fmul qword [0x1026c040]
fstp dword [esi + 0xe6cc]
cmp ebx, 0x2020
jne 0x100e8765
mov eax, dword [esp + 0x1b4]
push 0x102
push 0x101
push eax
push esi
call fcn.100e76a0
add esp, 0x10
jmp 0x100e886d
cmp ebx, 0x2040
jne 0x100e8784
mov ecx, dword [esp + 0x1b4]
push ebx
push ecx
push esi
call fcn.100e7730
add esp, 0xc
jmp 0x100e886d
cmp ebx, 0xb028
jne 0x100e87c3
mov edi, dword [esi]
push 0
push esi
call fcn.100d8280
mov edx, dword [esi + 4]
add esp, 4
push eax
mov eax, dword [edi + 8]
push edx
call eax
mov ecx, dword [esp + 0x1c0]
push 0x89
push 0x88
push ecx
push esi
call fcn.100e76a0
add esp, 0x1c
jmp 0x100e886d
cmp ebx, 0x4001
jne 0x100e886d
cmp dword [esp + 0x20], 3
jne 0x100e886d
mov eax, dword [esp + 0x1c]
cmp eax, 0x246
jne 0x100e87ec
mov eax, 0x32
jmp 0x100e87fb
sub eax, 0x28d
neg eax
sbb eax, eax
and eax, 0x3a
add eax, 0x44
mov edx, dword [esi]
mov ecx, dword [edx + 8]
push 1
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0xc
xor edi, edi
mov edi, edi
push esi
call fcn.100d81e0
movzx edx, ax
mov eax, edi
shr eax, 1
mov dword [esp + 0x18], edx
xor eax, edi
inc edi
fild dword [esp + 0x18]
add esp, 4
fstp dword [esi + eax*4 + 0xe6c4]
cmp edi, 4
jb 0x100e8810
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x16
push edx
call eax
add esp, 0xc
xor edi, edi
jmp 0x100e8850
push esi
call fcn.100d81e0
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
add esp, 4
mov word [esi + ecx*2 + 0xe6bc], ax
cmp edi, 4
jb 0x100e8850
mov eax, dword [esp + 0x44]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
push 0
push eax
push ecx
call edx
mov eax, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
jne 0x100e7b51
jmp 0x100e8969
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, 0x4d4d
mov word [esi + 0x6244], ax
mov eax, dword [ecx + 0x18]
push edx
call eax
add esp, 4
cmp eax, dword [esi + 0x6590]
jge 0x100e8969
lea esp, [esp]
cmp eax, 0x4000
jae 0x100e8969
mov dword [esp + 0x48], edi
mov edi, ebx
push esi
mov ebx, ebp
call fcn.100d81e0
add esp, 4
movzx ebp, ax
cmp ebx, 0x100
jne 0x100e894f
cmp ebp, ebx
jne 0x100e894f
mov eax, dword [esp + 0x48]
lea ecx, [eax - 0x101]
cmp ecx, 0x17e
ja 0x100e894f
lea edx, [edi - 0x101]
cmp edx, 0x17e
ja 0x100e894f
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x100e891d
fadd dword [0x101cb844]
fstp dword [esi + 0xe6c4]
mov eax, edi
fld dword [0x101d07d4]
mov dword [esp + 0x30], eax
fst dword [esi + 0xe6c8]
fild dword [esp + 0x30]
test eax, eax
jge 0x100e8943
fadd dword [0x101cb844]
fstp dword [esi + 0xe6cc]
fstp dword [esi + 0xe6d0]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
add esp, 4
cmp eax, dword [esi + 0x6590]
jl 0x100e88c0
mov cx, word [esp + 0x40]
mov word [esi + 0x6244], cx
mov ecx, dword [esp + 0x1a8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010583a
add esp, 0x19c
ret