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

Disassembly:
sub esp, 0x198
mov eax, dword [0x101b0cd0]
xor eax, esp
mov dword [esp + 0x194], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1a8]
movzx eax, word [esi + 0x6274]
mov ecx, dword [esi]
mov ecx, dword [ecx]
push edi
push 0xa
push 1
lea edx, [esp + 0x5c]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 4]
xor edi, edi
push edx
push eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edi
xor ebx, ebx
xor ebp, ebp
call ecx
push 3
lea edx, [esp + 0x68]
push 0x1016ba7c
push edx
call fcn.10067543
add esp, 0x1c
test eax, eax
je 0x100de0b5
push 3
lea eax, [esp + 0x58]
push 0x1016ba78
push eax
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100de0b5
push 4
lea ecx, [esp + 0x58]
push str.IIII
push ecx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100de0b5
push 4
lea edx, [esp + 0x58]
push str.MMMM
push edx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100de0b5
push 2
lea eax, [esp + 0x58]
push 0x1016ba64
push eax
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100ddfd6
push 3
lea ecx, [esp + 0x58]
push 0x1016ba60
push ecx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100ddfd6
mov ecx, str.Nikon
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dceb0
test dl, dl
je 0x100dceac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dceb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dce90
xor eax, eax
jmp 0x100dceb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100dcf0c
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
mov edi, eax
push esi
mov dword [esp + 0x1b8], edi
call fcn.100cd370
push esi
mov word [esi + 0x6274], ax
call fcn.100cd370
add esp, 0xc
cmp ax, 0x2a
jne 0x100de0a9
push esi
call fcn.100cd410
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 0x100dd189
mov ecx, 0x10166d4c
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dcf35
test dl, dl
je 0x100dcf31
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dcf35
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dcf15
xor eax, eax
jmp 0x100dcf3a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100dcf7f
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]
mov edi, eax
mov eax, dword [esi + 4]
push 1
push 0xfffffffffffffffe
sub edi, 0xa
push eax
mov dword [esp + 0x1c0], edi
call ecx
push esi
call fcn.100cd370
push esi
mov word [esi + 0x6274], ax
call fcn.100cd370
add esp, 0x18
jmp 0x100dd189
push 8
lea edx, [esp + 0x58]
push str.FUJIFILM
push edx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100dd164
push 4
lea eax, [esp + 0x58]
push str.SONY
push eax
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100dd164
mov ecx, str.Panasonic
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dcfe0
test dl, dl
je 0x100dcfdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dcfe0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dcfc0
xor eax, eax
jmp 0x100dcfe5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd164
mov ecx, str.OLYMP
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd016
test dl, dl
je 0x100dd012
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd016
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dcff6
xor eax, eax
jmp 0x100dd01b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd153
mov ecx, str.LEICA
lea eax, [esp + 0x54]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd050
test dl, dl
je 0x100dd04c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd050
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd030
xor eax, eax
jmp 0x100dd055
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd153
mov ecx, str.Ricoh
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd086
test dl, dl
je 0x100dd082
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd086
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd066
xor eax, eax
jmp 0x100dd08b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd153
mov ecx, str.EPSON
lea eax, [esp + 0x54]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd0c0
test dl, dl
je 0x100dd0bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd0c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd0a0
xor eax, eax
jmp 0x100dd0c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd153
mov ecx, 0x1016ba1c
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd0f6
test dl, dl
je 0x100dd0f2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd0f6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd0d6
xor eax, eax
jmp 0x100dd0fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd142
mov ecx, 0x1016ba18
lea eax, [esp + 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd128
test dl, dl
je 0x100dd124
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd128
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd108
xor eax, eax
jmp 0x100dd12d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100dd142
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffff6
push edx
call eax
jmp 0x100dd17f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffc
push edx
call eax
jmp 0x100dd17f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffe
push edx
call eax
jmp 0x100dd17f
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 1
mov ecx, 0x4949
mov word [esi + 0x6274], cx
mov ecx, dword [edx + 8]
push 2
push eax
call ecx
mov edi, dword [esp + 0x1bc]
add esp, 0xc
push esi
call fcn.100cd370
movzx eax, ax
add esp, 4
cmp eax, 0x3e8
ja 0x100de0b5
test eax, eax
je 0x100de0a9
mov ebx, dword [esp + 0x1b4]
shl ebx, 0x10
mov dword [esp + 0x38], ebx
jmp 0x100dd1cb
mov edi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x38]
dec eax
lea edx, [esp + 0x40]
push edx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x30]
push edx
push edi
push esi
call fcn.100dcc70
mov ebp, dword [esp + 0x3c]
or ebp, ebx
add esp, 0x18
mov dword [esp + 0x24], ebp
cmp ebp, 2
jne 0x100dd23e
lea eax, [esi + 0x6485]
push 0x10166d6c
push eax
call fcn.101529e0
add esp, 8
test eax, eax
je 0x100dd542
push esi
call fcn.100cd370
push esi
call fcn.100cd370
movzx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 8
fild dword [esp + 0x10]
fstp dword [esi + 0x6590]
jmp 0x100dd542
mov eax, 4
cmp ebp, eax
jne 0x100dd38b
mov edx, dword [esp + 0x18]
add edx, 0xffffffe5
cmp edx, 7
ja 0x100dd542
push esi
call fcn.100cd410
push esi
call fcn.100cd370
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x100dd2c3
fldz
fcomp dword [esi + 0x6590]
fnstsw ax
test ah, 0x44
jp 0x100dd2c3
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
test ecx, ecx
jge 0x100dd296
fadd qword [0x101a37d8]
fmul qword [0x1016ba10]
fsub qword [0x10161e38]
fld qword [0x10161e40]
fxch st(1)
call fcn.10151b50
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul qword [0x10161da0]
fstp dword [esi + 0x6590]
push esi
call fcn.100cd370
push esi
call fcn.100cd370
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x100dd317
fldz
fcomp dword [esi + 0x6598]
fnstsw ax
test ah, 0x44
jp 0x100dd317
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
test ecx, ecx
jge 0x100dd2fe
fadd qword [0x101a37d8]
fmul qword [0x1016ba08]
fld qword [0x10161e40]
fxch st(1)
call fcn.10151b50
fstp dword [esi + 0x6598]
push esi
call fcn.100cd370
movzx ecx, ax
add esp, 4
cmp ecx, 0xffff
je 0x100dd35e
fldz
fcomp dword [esi + 0x6594]
fnstsw ax
test ah, 0x44
jp 0x100dd35e
movsx eax, cx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x1016ba00]
fld qword [0x10161e40]
fxch st(1)
call fcn.10151b50
fstp dword [esi + 0x6594]
push esi
call fcn.100cd370
push esi
call fcn.100cd370
movzx ecx, ax
push esi
mov dword [esp + 0x38], ecx
call fcn.100cd370
push esi
call fcn.100cd370
movzx edx, ax
mov dword [esi + 0x65a8], edx
jmp 0x100dd53f
cmp ebp, 7
jne 0x100dd3c2
cmp dword [esp + 0x14], 2
jne 0x100dd542
cmp dword [esp + 0x18], 0x14
jbe 0x100dd542
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x10]
push 0x40
lea ecx, [esi + 0x6505]
push ecx
push edx
call eax
add esp, 0xc
jmp 0x100dd542
cmp ebp, 8
jne 0x100dd3e5
cmp dword [esp + 0x14], eax
jne 0x100dd542
push esi
call fcn.100cd410
add esp, 4
mov dword [esi + 0x65a8], eax
jmp 0x100dd542
cmp ebp, 9
jne 0x100dd43c
mov ecx, 0x10166d74
lea eax, [esi + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100dd415
test dl, dl
je 0x100dd411
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100dd415
add eax, 2
add ecx, 2
test dl, dl
jne 0x100dd3f5
xor eax, eax
jmp 0x100dd41a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100dd542
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
push 1
push 0x40
lea edx, [esi + 0x6545]
push edx
push eax
call ecx
jmp 0x100dd53f
cmp ebp, 0xc
jne 0x100dd46e
cmp dword [esp + 0x18], eax
jne 0x100dd542
mov edi, dword [esp + 0x14]
push edi
push esi
call fcn.100cd490
fstp dword [esi + 0xe774]
push edi
push esi
call fcn.100cd490
fstp dword [esi + 0xe77c]
jmp 0x100dd53f
cmp ebp, 0x10
jne 0x100dd491
cmp dword [esp + 0x14], eax
jne 0x100dd542
push esi
call fcn.100cd410
add esp, 4
mov dword [esi + 0x65b8], eax
jmp 0x100dd542
cmp ebp, 0x11
jne 0x100dd4e5
cmp dword [esi + 0x6614], 0
je 0x100dd542
push 5
lea edx, [esi + 0x6485]
push 0x10166d6c
push edx
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100dd542
mov ebx, dword [esi]
push eax
push esi
call fcn.100cd410
mov ecx, dword [ebx + 8]
add eax, edi
add esp, 4
push eax
mov eax, dword [esi + 4]
push eax
call ecx
push edi
push esi
call fcn.100e2cf0
add esp, 0x14
jmp 0x100dd542
cmp ebp, 0x14
jne 0x100dd515
cmp dword [esp + 0x18], 0xa00
jne 0x100dd542
cmp dword [esp + 0x14], 7
jne 0x100dd542
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x4e0
push eax
call ecx
add esp, 0xc
jmp 0x100dddda
cmp ebp, 0x15
jne 0x100dd542
cmp dword [esp + 0x14], 2
jne 0x100dd542
cmp dword [esi + 0x6614], 0
je 0x100dd542
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 1
push 0x40
lea eax, [esi + 0x64c5]
push eax
push ecx
call edx
add esp, 0x10
lea eax, [esi + 0x6485]
push 0x10166d44
push eax
call fcn.101529e0
add esp, 8
test eax, eax
je 0x100dd586
cmp ebp, 0x1b
jne 0x100dd570
mov dword [esp + 0x24], 0x1018
mov ebx, dword [esp + 0x24]
jmp 0x100dddab
cmp ebp, 0x1c
jne 0x100dd586
mov dword [esp + 0x24], 0x1017
mov ebx, dword [esp + 0x24]
jmp 0x100ddd7b
cmp ebp, 0x1d
jne 0x100dd5f6
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
push edx
call eax
mov edi, eax
add esp, 4
test edi, edi
je 0x100dde23
cmp edi, 0xffffffff
je 0x100dde23
push edi
call fcn.100554e9
add esp, 4
test eax, eax
je 0x100dd5be
add edi, 0xffffffd0
jmp 0x100dd5cf
mov eax, 0xcccccccd
mul edi
shr edx, 3
lea ecx, [edx + edx*4]
add ecx, ecx
sub edi, ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esi]
lea edx, [eax + eax*4]
lea eax, [edi + edx*2]
mov edx, dword [esi + 4]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x1c]
push edx
call eax
mov edi, eax
add esp, 4
test edi, edi
jne 0x100dd5a3
jmp 0x100dde23
cmp ebp, 0x81
jne 0x100dd657
mov eax, dword [esp + 0x14]
cmp eax, 4
jne 0x100dd6cd
push esi
call fcn.100cd410
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esi + 0x65c0], eax
add eax, 0x29
push 0
push eax
mov eax, dword [ecx + 8]
push edx
call eax
push esi
call fcn.100cd370
add ax, ax
push esi
mov word [esi + 0x66b0], ax
call fcn.100cd370
add esp, 0x18
mov word [esi + 0x66b2], ax
mov dword [esi + 0x65b0], 0x61616161
jmp 0x100dde23
cmp ebp, 0x29
jne 0x100dd6d7
cmp dword [esp + 0x14], 1
jne 0x100dde23
mov eax, dword [esp + 0x2c]
cmp eax, 0x12
jae 0x100dd67c
movsx eax, byte [eax + str.012347800000005896]
sub eax, 0x30
jmp 0x100dd67e
xor eax, eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
shl eax, 5
add eax, 8
push 1
push eax
mov eax, dword [ecx + 8]
push edx
call eax
add esp, 0xc
xor edi, edi
push esi
call fcn.100cd410
add esp, 4
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
test eax, eax
jge 0x100dd6b2
fadd dword [0x10161be8]
mov ecx, edi
xor ecx, 2
shr ecx, 1
xor ecx, edi
inc edi
fstp dword [esi + ecx*4 + 0xe774]
cmp edi, 4
jb 0x100dd697
jmp 0x100dde23
cmp eax, 7
je 0x100dd702
jmp 0x100dde23
cmp ebp, 0x100
jne 0x100dd6eb
cmp dword [esp + 0x14], 7
je 0x100dd702
jmp 0x100dde23
cmp ebp, 0x280
jne 0x100dd726
cmp dword [esp + 0x14], 1
jne 0x100dde23
mov ebp, dword [esp + 0x24]
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
mov ebx, dword [esp + 0x28]
push eax
call ecx
mov edx, dword [esp + 0x1c]
add esp, 4
mov dword [esi + 0x65c4], eax
mov dword [esi + 0x65d0], edx
jmp 0x100dd72a
mov ebx, dword [esp + 0x28]
mov edi, 4
cmp ebp, 0x88
jne 0x100dd76c
cmp dword [esp + 0x14], edi
jne 0x100dde23
push esi
call fcn.100cd410
add esp, 4
mov dword [esi + 0x65c4], eax
test eax, eax
je 0x100dde23
mov ecx, dword [esp + 0x1b0]
add eax, ecx
mov dword [esi + 0x65c4], eax
jmp 0x100dde23
cmp ebp, 0x89
jne 0x100dd792
cmp dword [esp + 0x14], edi
jne 0x100dde23
push esi
call fcn.100cd410
add esp, 4
mov dword [esi + 0x65d0], eax
jmp 0x100dde23
cmp ebp, 0x8c
je 0x100dd7a2
cmp ebp, 0x96
jne 0x100dd7b6
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
add esp, 4
mov dword [esi + 0x65c8], eax
cmp ebp, 0x97
jne 0x100dd8d4
mov edi, 4
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
add esp, 4
sub edi, 1
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*2 - 0x30]
jne 0x100dd7c7
mov eax, ebx
sub eax, 0x64
mov dword [esp + 0x28], ebx
je 0x100dd844
sub eax, 2
je 0x100dd83b
sub eax, 1
jne 0x100dd88b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x10
push ecx
call edx
add esp, 0xc
lea edi, [esi + 0xe774]
mov ebx, 4
push esi
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x14], eax
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100dd817
jmp 0x100dde23
push 1
push 6
jmp 0x100ddf48
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x44
push edx
call eax
add esp, 0xc
xor edi, edi
push esi
call fcn.100cd370
movzx ecx, ax
mov edx, edi
and edx, 1
mov eax, edi
mov dword [esp + 0x14], ecx
add edx, edx
shr eax, 1
fild dword [esp + 0x14]
or edx, eax
inc edi
add esp, 4
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x100dd858
jmp 0x100dde23
cmp ebx, 0xc8
jb 0x100dde23
cmp dword [esp + 0x28], 0xcd
je 0x100dd8b6
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x118
push edx
call eax
add esp, 0xc
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
push 1
push 0x144
lea edx, [esp + 0x68]
push edx
push eax
call ecx
add esp, 0x10
jmp 0x100dde23
cmp ebp, 0xa4
jne 0x100dd934
cmp dword [esp + 0x14], 3
jne 0x100dde23
mov eax, dword [esp + 0x2c]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
lea eax, [eax + eax*2]
push 1
shl eax, 4
push eax
push ecx
call edx
add esp, 0xc
lea edi, [esi + 0xe774]
mov ebx, 3
lea ecx, [ecx]
push esi
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x14], eax
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100dd910
jmp 0x100dde23
cmp ebp, 0xa7
jne 0x100dda22
add ebx, 0xffffff38
cmp ebx, 0xc
jae 0x100dde23
fldz
fcomp dword [esi + 0xe774]
fnstsw ax
test ah, 0x44
jp 0x100dde23
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
and ecx, 0xff
movzx edx, byte [ecx + 0x10168ba8]
mov ecx, dword [esi + 4]
mov byte [esp + 0x23], 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 + 0x10168ca8]
mov al, byte [esp + 0x33]
mov bl, 0x60
add esp, 0x10
xor ecx, ecx
imul bl
add dl, al
xor byte [esp + ecx + 0x60], dl
add al, byte [esp + 0x23]
inc ecx
cmp ecx, 0x144
jb 0x100dd9c0
mov eax, dword [esp + 0x28]
movsx eax, byte [eax + 0x1016b910]
sub eax, 0x30
mov ebp, eax
xor edi, edi
and ebp, 1
and eax, 0xfffffffe
lea ebx, [esp + eax + 0x60]
nop
push ebx
push esi
call fcn.100cd340
mov edx, edi
movzx ecx, ax
shr edx, 1
xor edx, ebp
mov dword [esp + 0x18], ecx
xor edx, edi
inc edi
fild dword [esp + 0x18]
add esp, 8
add ebx, 2
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x100dd9f0
jmp 0x100dde23
cmp ebp, 0x200
jne 0x100dda93
mov eax, dword [esp + 0x18]
cmp eax, 3
jne 0x100dda4a
push esi
call fcn.100cd410
push esi
call fcn.100cd410
mov dword [esi + 0x65a8], eax
jmp 0x100dde20
cmp eax, edi
jne 0x100dde23
push esi
call fcn.100cd370
push esi
movzx edi, ax
call fcn.100cd370
movzx eax, ax
push esi
add edi, eax
call fcn.100cd370
movzx ecx, ax
push esi
add edi, ecx
call fcn.100cd370
movzx eax, ax
add eax, edi
cdq
and edx, 3
add eax, edx
add esp, 0x10
sar eax, 2
mov dword [esi + 0x65f8], eax
jmp 0x100dde23
cmp ebp, 0x201
jne 0x100ddaaa
cmp dword [esp + 0x18], edi
je 0x100ddf56
jmp 0x100dde23
cmp ebp, 0x220
jne 0x100ddada
cmp dword [esp + 0x18], 0x35
jne 0x100dde23
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0xe
push eax
call ecx
push esi
call fcn.100d0250
add esp, 0x10
jmp 0x100dde23
cmp ebp, 0x401
jne 0x100ddb1d
cmp dword [esp + 0x18], edi
jne 0x100dde23
push esi
call fcn.100cd410
push esi
mov edi, eax
call fcn.100cd410
push esi
add edi, eax
call fcn.100cd410
push esi
add edi, eax
call fcn.100cd410
add eax, edi
add esp, 0x10
shr eax, 2
mov dword [esi + 0x65f8], eax
jmp 0x100dde23
cmp ebp, 0xe01
jne 0x100ddbcf
movsx edx, word [esi + 0x6274]
mov ecx, dword [esi]
push 1
mov dword [esp + 0x18], edx
mov edx, dword [esi + 4]
mov eax, 0x4949
mov word [esi + 0x6274], ax
mov eax, dword [ecx + 8]
push 0x16
push edx
call eax
add esp, 0xc
cmp dword [esp + 0x18], 0x2c
mov ebx, 0x16
jbe 0x100ddbc3
mov edi, edi
push esi
call fcn.100cd410
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 1
mov ebp, eax
mov eax, dword [ecx + 8]
push 0xe
push edx
mov dword [esp + 0x34], ebp
call eax
push esi
call fcn.100cd410
mov edi, eax
add esp, 0x14
sub edi, 4
cmp ebp, 0x76a43207
jne 0x100ddba5
push esi
call fcn.100cd370
movzx ecx, ax
add esp, 4
mov dword [esi + 0x66c8], ecx
jmp 0x100ddbb6
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push edi
push eax
call ecx
add esp, 0xc
lea ebx, [ebx + edi + 0x16]
lea edx, [ebx + 0x16]
cmp edx, dword [esp + 0x18]
jb 0x100ddb60
mov ax, word [esp + 0x14]
mov word [esi + 0x6274], ax
cmp ebp, 0xe80
jne 0x100ddc5d
cmp dword [esp + 0x18], 0x100
jne 0x100dde23
cmp dword [esp + 0x14], 7
jne 0x100dde23
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x30
push edx
call eax
push esi
call fcn.100cd370
movzx ecx, ax
imul ecx, ecx, 0x1fc
mov dword [esp + 0x20], ecx
push esi
fild dword [esp + 0x24]
fmul qword [0x1016b9d0]
fmul qword [0x101629a0]
fstp dword [esi + 0xe774]
call fcn.100cd370
movzx edx, ax
add esp, 0x14
imul edx, edx, 0x17e
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x1016b9c8]
fmul qword [0x101629a0]
fstp dword [esi + 0xe77c]
jmp 0x100dde23
cmp ebp, 0xf00
jne 0x100ddcc1
cmp dword [esp + 0x14], 7
jne 0x100dde23
mov eax, dword [esp + 0x18]
cmp eax, 0x266
jne 0x100ddc95
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0xb0
push ecx
call edx
add esp, 0xc
jmp 0x100dddda
cmp eax, 0x2de
je 0x100ddca7
cmp eax, 0x5de
jne 0x100ddfb0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x94
push ecx
call edx
add esp, 0xc
jmp 0x100dddda
cmp ebp, 0x1011
jne 0x100ddcd5
cmp dword [esp + 0x18], 9
je 0x100ddcdd
jmp 0x100dde23
cmp ebp, 0x20400200
jne 0x100ddd24
lea ebp, [esi + 0xe794]
mov dword [esp + 0x10], 3
jmp 0x100ddcf0
mov edi, ebp
mov ebx, 3
push esi
call fcn.100cd370
cwde
mov dword [esp + 0x20], eax
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x1c]
fmul qword [0x10162970]
fstp dword [edi - 4]
jne 0x100ddcf7
add ebp, 0x10
sub dword [esp + 0x10], 1
jne 0x100ddcf0
mov ebx, dword [esp + 0x24]
cmp ebx, 0x1012
je 0x100ddd38
cmp ebx, 0x20400600
jne 0x100ddd6b
mov edi, 4
cmp dword [esp + 0x18], edi
jne 0x100ddd6b
mov dword [esi + 0x65f8], 0
lea ecx, [ecx]
push esi
call fcn.100cd370
movzx ecx, ax
add ecx, ecx
add ecx, ecx
add dword [esi + 0x65f8], ecx
add esp, 4
sub edi, 1
jne 0x100ddd50
cmp ebx, 0x1017
je 0x100ddd7b
cmp ebx, 0x20400100
jne 0x100ddd9b
push esi
call fcn.100cd370
movzx edx, ax
mov dword [esp + 0x20], edx
add esp, 4
fild dword [esp + 0x1c]
fmul qword [0x10162970]
fstp dword [esi + 0xe774]
cmp ebx, 0x1018
je 0x100dddab
cmp ebx, 0x20400100
jne 0x100dddcb
push esi
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x20], eax
add esp, 4
fild dword [esp + 0x1c]
fmul qword [0x10162970]
fstp dword [esi + 0xe77c]
cmp ebx, 0x2011
jne 0x100dde23
cmp dword [esp + 0x18], 2
jne 0x100dde23
mov ecx, 0x4d4d
push esi
mov word [esi + 0x6274], cx
call fcn.100cd370
movzx edx, ax
mov dword [esp + 0x20], edx
push esi
fild dword [esp + 0x24]
fmul qword [0x10162970]
fstp dword [esi + 0xe774]
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x10162970]
fstp dword [esi + 0xe77c]
add esp, 8
mov ebx, dword [esp + 0x24]
mov ecx, ebx
or ecx, 0x70
cmp ecx, 0x2070
jne 0x100dde60
cmp dword [esp + 0x14], 4
jne 0x100dde60
mov ebp, dword [esi]
push 0
push esi
call fcn.100cd410
mov edi, dword [esp + 0x1b8]
mov edx, dword [esi + 4]
add eax, edi
add esp, 4
push eax
mov eax, dword [ebp + 8]
push edx
call eax
add esp, 0xc
jmp 0x100dde67
mov edi, dword [esp + 0x1b0]
cmp ebx, 0x2010
jne 0x100dde89
cmp dword [esp + 0x14], 7
je 0x100ddfb0
mov dword [esi + 0x2e7fc], 0x100d39f0
jmp 0x100ddfb0
cmp ebx, 0x2020
jne 0x100ddeaa
push 0x102
push 0x101
push edi
push esi
call fcn.100dcd00
add esp, 0x10
jmp 0x100ddfb0
cmp ebx, 0x2040
jne 0x100ddec2
push ebx
push edi
push esi
call fcn.100dcd90
add esp, 0xc
jmp 0x100ddfb0
cmp ebx, 0xb028
jne 0x100ddefa
mov ebx, dword [esi]
push 0
push esi
call fcn.100cd410
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
add esp, 4
push eax
push ecx
call edx
push 0x89
push 0x88
push edi
push esi
call fcn.100dcd00
add esp, 0x1c
jmp 0x100ddfb0
cmp ebx, 0x4001
jne 0x100ddfb0
cmp dword [esp + 0x18], 0x1f4
jbe 0x100ddfb0
mov eax, dword [esp + 0x18]
cmp eax, 0x246
jne 0x100ddf26
mov eax, 0x32
jmp 0x100ddf45
cmp eax, 0x28d
jne 0x100ddf34
mov eax, 0x44
jmp 0x100ddf45
sub eax, 0x1400
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x8e
push 1
push eax
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [ecx + 8]
push edx
call eax
add esp, 0xc
xor edi, edi
push esi
call fcn.100cd370
movzx ecx, ax
mov edx, edi
shr edx, 1
mov dword [esp + 0x20], ecx
xor edx, edi
inc edi
fild dword [esp + 0x20]
add esp, 4
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x100ddf58
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x16
push ecx
call edx
add esp, 0xc
xor edi, edi
push esi
call fcn.100cd370
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
add esp, 4
mov word [esi + ecx*2 + 0xe76c], ax
cmp edi, 4
jb 0x100ddf93
mov eax, dword [esp + 0x40]
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 + 0x40]
add esp, 0xc
test eax, eax
jne 0x100dd1c0
jmp 0x100de0a9
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, 0x4d4d
mov word [esi + 0x6274], ax
mov eax, dword [ecx + 0x18]
push edx
call eax
add esp, 4
cmp eax, dword [esi + 0x65c0]
jge 0x100de0a9
lea esp, [esp]
cmp eax, 0x4000
jae 0x100de0a9
mov dword [esp + 0x44], edi
mov edi, ebx
push esi
mov ebx, ebp
call fcn.100cd370
add esp, 4
movzx ebp, ax
cmp ebx, 0x100
jne 0x100de08f
cmp ebp, ebx
jne 0x100de08f
mov eax, dword [esp + 0x44]
lea ecx, [eax - 0x101]
cmp ecx, 0x17e
ja 0x100de08f
lea edx, [edi - 0x101]
cmp edx, 0x17e
ja 0x100de08f
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
test eax, eax
jge 0x100de05d
fadd dword [0x10161be8]
fstp dword [esi + 0xe774]
mov eax, edi
fld dword [0x1016b9c4]
mov dword [esp + 0x34], eax
fst dword [esi + 0xe778]
fild dword [esp + 0x34]
test eax, eax
jge 0x100de083
fadd dword [0x10161be8]
fstp dword [esi + 0xe77c]
fstp dword [esi + 0xe780]
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 + 0x65c0]
jl 0x100de000
mov cx, word [esp + 0x3c]
mov word [esi + 0x6274], cx
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1005392f
add esp, 0x198
ret