Function at 0x10086940
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1f0
push ebx
push ebp
push esi
mov esi, ecx
movzx eax, word [esi + 0x40a00]
xor ebp, ebp
mov dword [esp + 0xa8], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x98], ebp
xor ebx, ebx
mov dword [esp + 0xa4], ebp
lea eax, [esi + 8]
mov ecx, str.Nokia
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100869a8
test dl, dl
je 0x100869a4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100869a8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086988
xor eax, eax
jmp 0x100869ad
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10088992
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 0xa
push 1
lea eax, [esp + 0x7c]
push eax
call edx
push 3
lea eax, [esp + 0x78]
push 0x10179d10
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088992
push 3
lea ecx, [esp + 0x78]
push 0x10179d0c
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088992
push 4
lea edx, [esp + 0x78]
push str.IIII
push edx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088992
push 4
lea eax, [esp + 0x78]
push str.MMMM
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088992
push edi
push 2
lea ecx, [esp + 0x7c]
push 0x10179cf8
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088878
push 3
lea edx, [esp + 0x7c]
push 0x10179cf4
push edx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10088878
mov ecx, str.Nikon
lea eax, [esp + 0x78]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086aa0
test dl, dl
je 0x10086a9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086aa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086a80
xor eax, eax
jmp 0x10086aa5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x10086b00
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x204], ebx
call fcn.10076330
mov ecx, esi
mov word [esi + 0x40a00], ax
call fcn.10076330
cmp ax, 0x2a
jne 0x10088982
mov ecx, esi
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
xor ebp, ebp
add eax, 0xfffffff8
push ebp
push eax
mov eax, dword [edx + 0xc]
call eax
jmp 0x10086da7
mov ecx, 0x10179cec
lea eax, [esp + 0x78]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086b30
test dl, dl
je 0x10086b2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086b30
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086b10
xor eax, eax
jmp 0x10086b35
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x10086b7f
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
mov ebx, eax
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
sub ebx, 0xa
push 0xfffffffffffffffe
mov dword [esp + 0x210], ebx
call eax
mov ecx, esi
call fcn.10076330
mov ecx, esi
mov word [esi + 0x40a00], ax
call fcn.10076330
jmp 0x10086da7
push 4
lea ecx, [esp + 0x7c]
push str.SONY
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10086df5
mov ecx, 0x10179cd8
lea eax, [esp + 0x78]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086bc4
test dl, dl
je 0x10086bc0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086bc4
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086ba4
xor eax, eax
jmp 0x10086bc9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086df5
push 8
lea edx, [esp + 0x7c]
push str.FUJIFILM
push edx
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x10086c07
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov ebx, eax
sub ebx, 0xa
mov dword [esp + 0x204], ebx
jmp 0x10086dfc
mov ecx, str.OLYMP
lea eax, [esp + 0x78]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086c30
test dl, dl
je 0x10086c2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086c30
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086c10
xor eax, eax
jmp 0x10086c35
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086de5
mov ecx, 0x102347ec
lea eax, [esp + 0x78]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086c66
test dl, dl
je 0x10086c62
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086c66
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086c46
xor eax, eax
jmp 0x10086c6b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086de5
mov ecx, str.Ricoh
lea eax, [esp + 0x78]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086ca0
test dl, dl
je 0x10086c9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086ca0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086c80
xor eax, eax
jmp 0x10086ca5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086de5
mov ecx, str.EPSON
lea eax, [esp + 0x78]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086cd6
test dl, dl
je 0x10086cd2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086cd6
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086cb6
xor eax, eax
jmp 0x10086cdb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086de5
mov ecx, 0x10179cc4
lea eax, [esp + 0x78]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086d10
test dl, dl
je 0x10086d0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086d10
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086cf0
xor eax, eax
jmp 0x10086d15
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086d8d
mov ecx, 0x10179cc0
lea eax, [esp + 0x78]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10086d42
test dl, dl
je 0x10086d3e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10086d42
add eax, 2
add ecx, 2
test dl, dl
jne 0x10086d22
xor eax, eax
jmp 0x10086d47
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10086d8d
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffff6
call edx
push 7
lea eax, [esi + 8]
push 0x10179cb8
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x10086da0
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov ebx, eax
mov dword [esp + 0x204], ebx
jmp 0x10086da7
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffc
mov edx, dword [eax + 0xc]
call edx
mov ebx, dword [esp + 0x204]
mov ecx, esi
call fcn.10076330
movzx eax, ax
cmp eax, 0x3e8
ja 0x10088991
movzx ecx, word [esi + 0x40a00]
mov dword [esp + 0xb4], ecx
cmp eax, ebp
je 0x10088982
mov edi, dword [esp + 0x208]
shl edi, 0x10
mov dword [esp + 0xb0], edi
jmp 0x10086e2e
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
jmp 0x10086d9b
mov ebx, dword [esp + 0x204]
mov ecx, dword [esi + 0x409b0]
mov eax, 0x4949
push 1
mov word [esi + 0x40a00], ax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push 2
call eax
jmp 0x10086da7
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 0x204]
mov dx, word [esp + 0xb4]
dec eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x18]
push ecx
mov word [esi + 0x40a00], dx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
push ebx
mov ecx, esi
call fcn.100866d0
mov ebp, dword [esp + 0x48]
or ebp, edi
mov dword [esp + 0x48], ebp
cmp ebp, 2
jne 0x10086ec3
lea eax, [esi + 8]
push str.NIKON
push eax
call fcn.101519e0
add esp, 8
test eax, eax
je 0x100873f8
fldz
fcomp dword [esi + 0x202a8]
fnstsw ax
test ah, 0x44
jp 0x100873f8
mov ecx, esi
call fcn.10076330
mov ecx, esi
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fstp dword [esi + 0x202a8]
jmp 0x100873f8
cmp ebp, 4
jne 0x10087004
mov edx, dword [esp + 0x14]
add edx, 0xffffffe5
cmp edx, 7
ja 0x1008700c
mov ecx, esi
call fcn.100763f0
mov ecx, esi
call fcn.10076330
movzx ecx, ax
cmp ecx, 0x7fff
je 0x10086f3b
fldz
fcomp dword [esi + 0x202a8]
fnstsw ax
test ah, 0x44
jp 0x10086f3b
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
test ecx, ecx
jge 0x10086f16
fadd qword [0x1023a920]
fmul qword [0x1023aab0]
fsub qword [0x1023a788]
fld qword [0x1023a780]
fxch st(1)
call fcn.10153360
fmul qword [0x10179cb0]
fstp dword [esi + 0x202a8]
mov ecx, esi
call fcn.10076330
mov ecx, esi
call fcn.10076330
movzx ecx, ax
cmp ecx, 0x7fff
je 0x10086f8e
fldz
fcomp dword [esi + 0x202b0]
fnstsw ax
test ah, 0x44
jp 0x10086f8e
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
test ecx, ecx
jge 0x10086f75
fadd qword [0x1023a920]
fmul qword [0x10179ca8]
fld qword [0x1023a780]
fxch st(1)
call fcn.10153360
fstp dword [esi + 0x202b0]
mov ecx, esi
call fcn.10076330
movzx ecx, ax
cmp ecx, 0xffff
je 0x10086fd3
fldz
fcomp dword [esi + 0x202ac]
fnstsw ax
test ah, 0x44
jp 0x10086fd3
movsx eax, cx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x10179ca0]
fld qword [0x1023a780]
fxch st(1)
call fcn.10153360
fstp dword [esi + 0x202ac]
mov ecx, esi
call fcn.10076330
mov ecx, esi
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0x94], ecx
mov ecx, esi
call fcn.10076330
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov dword [esi + 0x202c0], edx
jmp 0x1008700c
cmp ebp, 0x114
jne 0x10087081
push 6
lea eax, [esi + 8]
push str.KONICA
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x10087081
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
mov eax, ebp
sub eax, 4
neg eax
sbb eax, eax
and eax, 0x14
add eax, 0x8c
cdq
push 1
push edx
push eax
mov eax, dword [edi + 0xc]
call eax
mov ecx, esi
call fcn.10076330
movzx eax, ax
cmp eax, 0x48
je 0x10087077
cmp eax, 0x4c
je 0x1008706b
cmp eax, 0x52
jne 0x10087081
mov dword [esi + 0xc0], 5
jmp 0x10087081
mov dword [esi + 0xc0], 6
jmp 0x10087081
mov dword [esi + 0xc0], 0
mov eax, 7
cmp ebp, eax
jne 0x100870bb
cmp dword [esp + 0x1c], 2
jne 0x100873f8
cmp dword [esp + 0x14], 0x14
jbe 0x100873f8
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
push 0x40
lea eax, [esi + 0x20258]
push eax
call edx
jmp 0x100873f8
cmp ebp, 8
jne 0x100870dd
cmp dword [esp + 0x1c], 4
jne 0x100873f8
mov ecx, esi
call fcn.100763f0
mov dword [esi + 0x202c0], eax
jmp 0x100873f8
cmp ebp, 9
jne 0x10087128
mov ecx, str.Canon
lea eax, [esi + 8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10087110
test dl, dl
je 0x1008710c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10087110
add eax, 2
add ecx, 2
test dl, dl
jne 0x100870f0
xor eax, eax
jmp 0x10087115
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100873f8
lea edx, [esi + 0x20544]
jmp 0x100873e6
cmp ebp, 0xc
jne 0x10087175
cmp dword [esp + 0x14], 4
jne 0x100873f8
mov edi, dword [esp + 0x1c]
push edi
mov ecx, esi
call fcn.10076480
fstp dword [esi + 0x14c]
push edi
mov ecx, esi
call fcn.10076480
fstp dword [esi + 0x154]
mov ecx, dword [esi + 0xc8]
and ecx, 0xffffbfff
or ecx, 0x3000
mov dword [esi + 0xc8], ecx
jmp 0x100873f8
cmp ebp, 0xd
jne 0x1008722b
cmp dword [esp + 0x1c], eax
jne 0x100873f8
mov ecx, esi
call fcn.10076330
mov edx, 0xaaaa
cmp ax, dx
jne 0x100873f8
mov ebx, 2
mov edi, ebx
cmp ebx, dword [esp + 0x14]
jae 0x100871c7
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
shl edi, 8
or edi, eax
mov eax, 0xbbbb
inc ebx
cmp di, ax
jne 0x100871a4
mov edi, dword [esp + 0x14]
add ebx, 4
add edi, 0xfffffffb
cmp ebx, edi
jae 0x100873f8
lea esp, [esp]
mov ecx, esi
call fcn.100763f0
cmp eax, 0x101
jne 0x1008721f
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1008721f
mov ecx, esi
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
cmp eax, 3
jae 0x1008721f
movsx ecx, byte [eax + 0x10179c94]
sub ecx, 0x30
mov dword [esi + 0xc0], ecx
add ebx, 4
cmp ebx, edi
jb 0x100871e0
jmp 0x100873f8
cmp ebp, 0x10
jne 0x1008724d
cmp dword [esp + 0x1c], 4
jne 0x100873f8
mov ecx, esi
call fcn.100763f0
mov dword [esi + 0x409f0], eax
jmp 0x100873f8
cmp ebp, 0x11
jne 0x100872a9
cmp dword [esi + 0x88], 0
je 0x100873f8
push 5
lea eax, [esi + 8]
push str.NIKON
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x100873f8
mov edx, dword [esi + 0x409b0]
mov edi, dword [edx]
push eax
mov ecx, esi
add edi, 0xc
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
add eax, ebx
push 0
push eax
mov eax, dword [edi]
call eax
push ebx
mov ecx, esi
call fcn.100917a0
jmp 0x100873f8
cmp ebp, 0x14
jne 0x100873ce
cmp dword [esp + 0x1c], eax
jne 0x100873f8
cmp dword [esp + 0x14], 0xa00
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
jne 0x100872e1
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x4e0
call eax
jmp 0x10088298
mov edx, dword [edx + 8]
push 0xa
push 1
lea eax, [esp + 0x80]
push eax
call edx
push 4
lea eax, [esp + 0x7c]
push str.NRW
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x100873f8
mov ecx, str.0100
lea eax, [esp + 0x7c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10087337
test dl, dl
je 0x10087333
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10087337
add eax, 2
add ecx, 2
test dl, dl
jne 0x10087317
xor eax, eax
jmp 0x1008733c
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
neg eax
sbb eax, eax
and eax, 0xfffffa24
add eax, 0x60a
cdq
push 1
push edx
mov edx, dword [edi + 0xc]
push eax
call edx
mov ecx, esi
call fcn.100763f0
add eax, eax
add eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x10087379
fadd dword [0x1023ab98]
mov ecx, esi
fstp dword [esi + 0x14c]
call fcn.100763f0
mov ecx, esi
mov edi, eax
call fcn.100763f0
add edi, eax
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
test edi, edi
jge 0x100873a3
fadd dword [0x1023ab98]
mov ecx, esi
fstp dword [esi + 0x150]
call fcn.100763f0
add eax, eax
add eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x100873c6
fadd dword [0x1023ab98]
fstp dword [esi + 0x154]
jmp 0x100873f8
cmp ebp, 0x15
jne 0x100873f8
cmp dword [esp + 0x1c], 2
jne 0x100873f8
cmp dword [esi + 0x88], 0
je 0x100873f8
lea edx, [esi + 0x48]
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
push 0x40
push edx
call eax
lea eax, [esi + 8]
push 0x10179c7c
push eax
call fcn.101519e0
add esp, 8
test eax, eax
je 0x10087439
cmp ebp, 0x1b
jne 0x10087423
mov dword [esp + 0x48], 0x1018
mov edi, dword [esp + 0x48]
jmp 0x100881fe
cmp ebp, 0x1c
jne 0x10087439
mov dword [esp + 0x48], 0x1017
mov edi, dword [esp + 0x48]
jmp 0x10088167
cmp ebp, 0x1d
jne 0x100874ad
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov edi, eax
test edi, edi
je 0x10088396
cmp edi, 0xffffffff
je 0x10088396
push edi
call fcn.1014fb03
add esp, 4
test eax, eax
je 0x10087470
add edi, 0xffffffd0
jmp 0x10087481
mov eax, 0xcccccccd
mul edi
shr edx, 3
lea ecx, [edx + edx*4]
add ecx, ecx
sub edi, ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esi + 0x409b0]
lea edx, [eax + eax*4]
lea eax, [edi + edx*2]
mov edx, dword [ecx]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 0x14]
call eax
mov edi, eax
test edi, edi
jne 0x10087455
jmp 0x10088396
cmp ebp, 0x81
jne 0x10087524
mov edi, dword [esp + 0x1c]
cmp edi, 4
jne 0x100875c8
mov ecx, esi
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], 0
mov edi, dword [esi + 0x40a24]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add eax, 0x29
push 0
adc edi, 0
push edi
push eax
call edx
mov ecx, esi
call fcn.10076330
add ax, ax
mov ecx, esi
mov word [esi + 0xa8], ax
call fcn.10076330
mov word [esi + 0xaa], ax
mov dword [esi + 0x98], 0x61616161
jmp 0x10088396
cmp ebp, 0x29
jne 0x100875bc
cmp dword [esp + 0x1c], 1
jne 0x10088396
mov eax, dword [esp + 0x94]
cmp eax, 0x12
jae 0x10087550
movsx eax, byte [eax + 0x10179c68]
sub eax, 0x30
jmp 0x10087552
xor eax, eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
shl eax, 5
add eax, 8
push 0
push eax
mov eax, dword [edx + 0xc]
call eax
xor edi, edi
lea esp, [esp]
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x10087589
fadd dword [0x1023ab98]
mov ecx, edi
xor ecx, 2
shr ecx, 1
xor ecx, edi
inc edi
fstp dword [esi + ecx*4 + 0x14c]
cmp edi, 4
jb 0x10087570
mov edx, dword [esi + 0xc8]
and edx, 0xffffbfff
or edx, 0x3000
mov dword [esi + 0xc8], edx
jmp 0x10088396
cmp ebp, 0x100
jne 0x100875d2
mov edi, dword [esp + 0x1c]
cmp edi, 7
je 0x100875ed
jmp 0x10088396
cmp ebp, 0x280
jne 0x10087612
cmp dword [esp + 0x1c], 1
jne 0x10088396
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov dword [esi + 0x409c8], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x409cc], edx
mov dword [esi + 0x20590], eax
jmp 0x10087616
mov edi, dword [esp + 0x1c]
cmp ebp, 0x88
jne 0x1008766d
cmp edi, 4
jne 0x10088396
mov ecx, esi
call fcn.100763f0
mov ecx, eax
mov dword [esi + 0x409cc], 0
mov edi, dword [esi + 0x409cc]
mov edx, ecx
or edx, edi
mov dword [esi + 0x409c8], eax
je 0x10088396
mov eax, dword [esp + 0x204]
cdq
add eax, ecx
adc edx, edi
mov dword [esi + 0x409c8], eax
mov dword [esi + 0x409cc], edx
jmp 0x10088396
cmp ebp, 0x89
jne 0x10087690
cmp edi, 4
jne 0x10088396
mov ecx, esi
call fcn.100763f0
mov dword [esi + 0x20590], eax
jmp 0x10088396
cmp ebp, 0x8c
je 0x100876a0
cmp ebp, 0x96
jne 0x100876b9
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov dword [esi + 0x40a28], eax
mov dword [esi + 0x40a2c], edx
cmp ebp, 0x97
jne 0x10087809
mov ebx, dword [esp + 0x88]
mov edi, 4
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
sub edi, 1
lea ecx, [ebx + ebx*4]
lea ebx, [eax + ecx*2 - 0x30]
jne 0x100876d1
mov eax, ebx
sub eax, 0x64
mov dword [esp + 0x88], ebx
je 0x1008775d
sub eax, 2
je 0x10087745
sub eax, 1
jne 0x100877b9
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
push eax
mov eax, dword [edx + 0xc]
push 0x10
call eax
lea edi, [esi + 0x14c]
mov ebx, 4
mov ecx, esi
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0x18], ecx
add edi, 4
sub ebx, 1
fild dword [esp + 0x18]
fstp dword [edi - 4]
jne 0x10087723
jmp 0x1008759f
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
push 0
push 6
call edx
jmp 0x100885b1
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
push 0
push 0x44
call edx
xor edi, edi
mov ecx, esi
call fcn.10076330
movzx eax, ax
mov ecx, edi
and ecx, 1
mov edx, edi
mov dword [esp + 0x18], eax
add ecx, ecx
shr edx, 1
fild dword [esp + 0x18]
or ecx, edx
inc edi
fstp dword [esi + ecx*4 + 0x14c]
cmp edi, 4
jb 0x10087772
mov eax, dword [esi + 0xc8]
and eax, 0xffffbfff
or eax, 0x3000
mov dword [esi + 0xc8], eax
jmp 0x10088396
cmp ebx, 0xc8
jb 0x10088396
cmp dword [esp + 0x88], 0xcd
je 0x100877e8
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x118
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
push 0x144
lea eax, [esp + 0xc4]
push eax
call edx
jmp 0x10088396
cmp ebp, 0xa1
jne 0x100878b9
cmp edi, 7
jne 0x10088396
mov ecx, dword [esi + 0x409b0]
mov eax, 0x4949
push 1
mov word [esi + 0x40a00], ax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0
push 0x8c
call eax
lea edi, [esi + 0x14c]
mov ebx, 3
jmp 0x10087850
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x88], 0xff
mov byte [esp + 0x89], 0xff
mov byte [esp + 0x8a], 0xff
mov byte [esp + 0x8b], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x8c]
push eax
call edx
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.10076390
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x100878aa
fadd dword [0x1023ab98]
fstp dword [edi]
add edi, 4
sub ebx, 1
jne 0x10087850
jmp 0x10088396
cmp ebp, 0xa4
jne 0x10087916
cmp edi, 3
jne 0x10088396
mov eax, dword [esp + 0x94]
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push 1
lea eax, [eax + eax*2]
shl eax, 4
push 0
push eax
call edx
lea edi, [esi + 0x14c]
mov ebx, 3
mov ecx, esi
call fcn.10076330
movzx eax, ax
mov dword [esp + 0x18], eax
add edi, 4
sub ebx, 1
fild dword [esp + 0x18]
fstp dword [edi - 4]
jne 0x100878f4
jmp 0x1008837e
cmp ebp, 0xa7
jne 0x10087a34
mov edx, dword [esp + 0x88]
add edx, 0xffffff38
cmp edx, 0x11
jae 0x10088396
mov eax, dword [esp + 0x90]
mov edi, dword [esi + 0x409b0]
and eax, 0xff
mov cl, byte [eax + 0x10179a68]
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
mov byte [esp + 0x77], cl
mov ecx, edi
call edx
mov ebx, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
mov ecx, edi
call edx
mov ecx, dword [esi + 0x409b0]
xor ebx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
mov ecx, dword [esi + 0x409b0]
mov edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
xor edi, ebx
call edx
xor eax, edi
mov dl, byte [eax + 0x10179b68]
mov al, byte [esp + 0x77]
mov bl, 0x60
xor ecx, ecx
imul bl
lea ebx, [ebx]
add dl, al
xor byte [esp + ecx + 0xbc], dl
add al, byte [esp + 0x77]
inc ecx
cmp ecx, 0x144
jb 0x100879a0
mov eax, dword [esp + 0x88]
movsx ecx, byte [eax + 0x10179988]
sub ecx, 0x30
mov edx, ecx
xor eax, eax
and edx, 1
and ecx, 0xfffffffe
lea ecx, [esp + ecx + 0xbc]
jmp 0x100879e0
mov edi, 0x4949
cmp word [esi + 0x40a00], di
jne 0x100879f9
movzx di, byte [ecx + 1]
movzx bx, byte [ecx]
jmp 0x10087a02
movzx di, byte [ecx]
movzx bx, byte [ecx + 1]
shl di, 8
or di, bx
movzx edi, di
movzx edi, di
mov dword [esp + 0x18], edi
mov edi, eax
shr edi, 1
fild dword [esp + 0x18]
xor edi, edx
xor edi, eax
inc eax
add ecx, 2
fstp dword [esi + edi*4 + 0x14c]
cmp eax, 4
jb 0x100879e0
jmp 0x1008837e
cmp ebp, 0x200
jne 0x10087b91
mov eax, dword [esp + 0x14]
cmp eax, 3
jne 0x10087b10
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x90], 0xff
mov byte [esp + 0x91], 0xff
mov byte [esp + 0x92], 0xff
mov byte [esp + 0x93], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x94]
push eax
call edx
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x74], 0xff
mov byte [esp + 0x75], 0xff
mov byte [esp + 0x76], 0xff
mov byte [esp + 0x77], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x78]
push edx
call eax
movzx edx, byte [esp + 0x72]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
movzx ecx, byte [esp + 0x71]
jne 0x10087aec
movzx eax, byte [esp + 0x73]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x70]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [esi + 0x202c0], eax
jmp 0x10088396
movzx eax, byte [esp + 0x70]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x73]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov dword [esi + 0x202c0], eax
jmp 0x10088396
cmp eax, 4
jne 0x10088396
xor edi, edi
jmp 0x10087b20
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x3c]
push eax
call edx
movzx cx, byte [esp + 0x35]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10087b66
movzx dx, byte [esp + 0x34]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10087b76
movzx ax, byte [esp + 0x34]
shl ax, 8
or ax, cx
movzx eax, ax
movzx edx, ax
mov eax, edi
shr eax, 1
xor eax, edi
inc edi
mov dword [esi + eax*4 + 0x20200], edx
cmp edi, 4
jb 0x10087b20
jmp 0x10088396
cmp ebp, 0x201
jne 0x10087ba9
cmp dword [esp + 0x14], 4
je 0x100885b1
jmp 0x10088396
cmp ebp, 0x220
jne 0x10087bd8
cmp edi, 7
jne 0x10088396
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov dword [esi + 0x40a28], eax
mov dword [esi + 0x40a2c], edx
jmp 0x10088396
cmp ebp, 0x401
jne 0x10087c92
cmp edi, 4
jne 0x10088396
cmp dword [esp + 0x14], edi
jne 0x10088396
xor edi, edi
lea esp, [esp]
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x64], 0xff
mov byte [esp + 0x65], 0xff
mov byte [esp + 0x66], 0xff
mov byte [esp + 0x67], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x68]
push eax
call edx
movzx ecx, byte [esp + 0x62]
movzx edx, byte [esp + 0x61]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10087c5d
movzx eax, byte [esp + 0x63]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x60]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x10087c76
movzx eax, byte [esp + 0x60]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x63]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
mov dword [esi + ecx*4 + 0x20200], eax
cmp edi, 4
jb 0x10087c00
jmp 0x10088396
cmp ebp, 0xe01
jne 0x10087e60
mov ecx, dword [esi + 0x409b0]
mov edx, 0x4949
push 1
mov word [esi + 0x40a00], dx
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0
push 0x16
call edx
cmp dword [esp + 0x14], 0x2c
mov ebp, 0x16
jbe 0x10088396
lea ecx, [ecx]
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x70], 0xff
mov byte [esp + 0x71], 0xff
mov byte [esp + 0x72], 0xff
mov byte [esp + 0x73], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x74]
push edx
call eax
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x10087d1e
movzx edi, byte [esp + 0x6f]
movzx edx, byte [esp + 0x6e]
movzx eax, byte [esp + 0x6d]
movzx ecx, byte [esp + 0x6c]
jmp 0x10087d32
movzx edi, byte [esp + 0x6c]
movzx edx, byte [esp + 0x6d]
movzx eax, byte [esp + 0x6e]
movzx ecx, byte [esp + 0x6f]
shl edi, 8
or edi, edx
shl edi, 8
or edi, eax
shl edi, 8
or edi, ecx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0xe
mov dword [esp + 0x54], edi
call eax
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x58], 0xff
mov byte [esp + 0x59], 0xff
mov byte [esp + 0x5a], 0xff
mov byte [esp + 0x5b], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x5c]
push eax
call edx
movzx ecx, byte [esp + 0x56]
movzx edx, byte [esp + 0x55]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10087db5
movzx eax, byte [esp + 0x57]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x54]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x10087dce
movzx eax, byte [esp + 0x54]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x57]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov ecx, dword [esi + 0x409b0]
lea ebx, [eax - 4]
cmp edi, 0x76a43207
jne 0x10087e43
push 2
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x40]
push edx
call eax
movzx dx, byte [esp + 0x39]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x10087e28
movzx ax, byte [esp + 0x38]
shl dx, 8
or dx, ax
movzx eax, dx
movzx eax, ax
mov dword [esi + 0xc0], eax
jmp 0x10087e4f
movzx cx, byte [esp + 0x38]
shl cx, 8
or cx, dx
movzx eax, cx
movzx eax, ax
mov dword [esi + 0xc0], eax
jmp 0x10087e4f
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push ebx
call eax
lea ebp, [ebx + ebp + 0x16]
lea ecx, [ebp + 0x16]
cmp ecx, dword [esp + 0x14]
jb 0x10087cd0
mov edi, dword [esp + 0x48]
cmp edi, 0xe80
jne 0x10087f8d
cmp dword [esp + 0x14], 0x100
jne 0x10088396
cmp dword [esp + 0x1c], 7
jne 0x10088396
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x30
call eax
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x44], 0xff
mov byte [esp + 0x45], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x48]
push eax
call edx
movzx cx, byte [esp + 0x41]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10087ee2
movzx dx, byte [esp + 0x40]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10087ef2
movzx ax, byte [esp + 0x40]
shl ax, 8
or ax, cx
movzx eax, ax
mov ecx, dword [esi + 0x409b0]
movzx edx, ax
imul edx, edx, 0x1fc
mov dword [esp + 0x18], edx
push 2
mov byte [esp + 0x54], 0xff
fild dword [esp + 0x1c]
mov byte [esp + 0x55], 0xff
push 1
lea edx, [esp + 0x58]
fmul qword [0x10179a48]
push edx
fmul qword [0x10179678]
fstp dword [esi + 0x14c]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movzx dx, byte [esp + 0x51]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x10087f5b
movzx ax, byte [esp + 0x50]
shl dx, 8
or dx, ax
movzx eax, dx
jmp 0x10087f6b
movzx cx, byte [esp + 0x50]
shl cx, 8
or cx, dx
movzx eax, cx
movzx eax, ax
imul eax, eax, 0x17e
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x10179a40]
fmul qword [0x10179678]
jmp 0x10088378
cmp edi, 0xf00
jne 0x10087ff3
cmp dword [esp + 0x1c], 7
jne 0x10088396
mov eax, dword [esp + 0x14]
cmp eax, 0x266
jne 0x10087fc6
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0xb0
call eax
jmp 0x10088298
cmp eax, 0x2de
je 0x10087fd8
cmp eax, 0x5de
jne 0x1008884b
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x94
call eax
jmp 0x10088298
cmp edi, 0x1011
jne 0x10088007
cmp dword [esp + 0x14], 9
je 0x10088013
jmp 0x10088396
cmp edi, 0x20400200
jne 0x100880ca
lea ebp, [esi + 0x16c]
mov dword [esp + 0x18], 3
mov edi, ebp
mov ebx, 3
jmp 0x10088030
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x40], 0xff
mov byte [esp + 0x41], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x44]
push eax
call edx
movzx cx, byte [esp + 0x3d]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10088076
movzx dx, byte [esp + 0x3c]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10088086
movzx ax, byte [esp + 0x3c]
shl ax, 8
or ax, cx
movzx eax, ax
movsx edx, ax
mov dword [esp + 0x10], edx
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fmul qword [0x10179a38]
fstp dword [edi - 4]
jne 0x10088030
add ebp, 0x10
sub dword [esp + 0x18], 1
jne 0x10088021
mov eax, dword [esi + 0xc8]
mov edi, dword [esp + 0x48]
and eax, 0xfffffeff
or eax, 0xc0
mov dword [esi + 0xc8], eax
cmp edi, 0x1012
je 0x100880da
cmp edi, 0x20400600
jne 0x10088153
cmp dword [esp + 0x14], 4
jne 0x10088153
xor edi, edi
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x34]
push eax
call edx
movzx cx, byte [esp + 0x2d]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10088129
movzx dx, byte [esp + 0x2c]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10088139
movzx ax, byte [esp + 0x2c]
shl ax, 8
or ax, cx
movzx eax, ax
movzx edx, ax
mov eax, edi
shr eax, 1
xor eax, edi
inc edi
mov dword [esi + eax*4 + 0x20200], edx
cmp edi, 4
jb 0x100880e3
mov edi, dword [esp + 0x48]
cmp edi, 0x1017
je 0x10088167
cmp edi, 0x20400100
jne 0x100881ea
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x50], 0xff
mov byte [esp + 0x51], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x54]
push eax
call edx
movzx cx, byte [esp + 0x4d]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x100881ad
movzx dx, byte [esp + 0x4c]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x100881bd
movzx ax, byte [esp + 0x4c]
shl ax, 8
or ax, cx
movzx eax, ax
movzx edx, ax
mov eax, dword [esi + 0xc8]
mov dword [esp + 0x10], edx
and eax, 0xffffbfff
or eax, 0x3000
fild dword [esp + 0x10]
mov dword [esi + 0xc8], eax
fmul qword [0x10179a38]
fstp dword [esi + 0x14c]
cmp edi, 0x1018
je 0x100881fe
cmp edi, 0x20400100
jne 0x10088281
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x28]
push eax
call edx
movzx cx, byte [esp + 0x21]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10088244
movzx dx, byte [esp + 0x20]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10088254
movzx ax, byte [esp + 0x20]
shl ax, 8
or ax, cx
movzx eax, ax
movzx edx, ax
mov eax, dword [esi + 0xc8]
mov dword [esp + 0x10], edx
and eax, 0xffffbfff
or eax, 0x3000
fild dword [esp + 0x10]
mov dword [esi + 0xc8], eax
fmul qword [0x10179a38]
fstp dword [esi + 0x154]
cmp edi, 0x2011
jne 0x10088396
cmp dword [esp + 0x14], 2
jne 0x10088396
mov ecx, 0x4d4d
mov word [esi + 0x40a00], cx
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x48], 0xff
mov byte [esp + 0x49], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x4c]
push eax
call edx
movzx cx, byte [esp + 0x45]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x100882ea
movzx dx, byte [esp + 0x44]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x100882fa
movzx ax, byte [esp + 0x44]
shl ax, 8
or ax, cx
movzx eax, ax
mov ecx, dword [esi + 0x409b0]
movzx edx, ax
mov dword [esp + 0x10], edx
push 2
mov byte [esp + 0x28], 0xff
fild dword [esp + 0x14]
mov byte [esp + 0x29], 0xff
push 1
lea edx, [esp + 0x2c]
fmul qword [0x10179a38]
push edx
fstp dword [esi + 0x14c]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movzx dx, byte [esp + 0x25]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x10088357
movzx ax, byte [esp + 0x24]
shl dx, 8
or dx, ax
movzx eax, dx
jmp 0x10088367
movzx cx, byte [esp + 0x24]
shl cx, 8
or cx, dx
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x10179a38]
fstp dword [esi + 0x154]
mov ecx, dword [esi + 0xc8]
and ecx, 0xffffbfff
or ecx, 0x3000
mov dword [esi + 0xc8], ecx
mov ebx, dword [esp + 0x48]
mov edx, ebx
or edx, 0x70
cmp edx, 0x2070
jne 0x10088449
cmp dword [esp + 0x1c], 4
jne 0x10088449
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x68], 0xff
mov byte [esp + 0x69], 0xff
mov byte [esp + 0x6a], 0xff
mov byte [esp + 0x6b], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x6c]
push edx
call eax
movzx edx, byte [esp + 0x66]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
movzx ecx, byte [esp + 0x65]
jne 0x10088413
movzx eax, byte [esp + 0x67]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x64]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x1008842c
movzx eax, byte [esp + 0x64]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x67]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov ecx, dword [esi + 0x409b0]
mov edi, dword [esp + 0x204]
mov edx, dword [ecx]
push 0
add eax, edi
push 0
push eax
mov eax, dword [edx + 0xc]
call eax
jmp 0x10088450
mov edi, dword [esp + 0x204]
cmp ebx, 0x2010
jne 0x10088472
cmp dword [esp + 0x1c], 7
je 0x1008884b
mov dword [esi + 0x46ca0], 0x1007d0c0
jmp 0x1008884b
cmp ebx, 0x2020
jne 0x10088491
push 0x102
push 0x101
push edi
mov ecx, esi
call fcn.100867c0
jmp 0x1008884b
cmp ebx, 0x2040
jne 0x100884a7
push ebx
push edi
mov ecx, esi
call fcn.10086940
jmp 0x1008884b
cmp ebx, 0xb028
jne 0x10088554
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x6c], 0xff
mov byte [esp + 0x6d], 0xff
mov byte [esp + 0x6e], 0xff
mov byte [esp + 0x6f], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x70]
push eax
call edx
movzx ecx, byte [esp + 0x6a]
movzx edx, byte [esp + 0x69]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10088510
movzx eax, byte [esp + 0x6b]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x68]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x10088529
movzx eax, byte [esp + 0x68]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x6b]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 0
add eax, edi
push 0
push eax
mov eax, dword [edx + 0xc]
call eax
push 0x89
push 0x88
push edi
mov ecx, esi
call fcn.100867c0
jmp 0x1008884b
cmp ebx, 0x4001
jne 0x100886da
cmp dword [esp + 0x14], 0x1f4
jbe 0x1008884b
mov eax, dword [esp + 0x14]
cmp eax, 0x246
jne 0x10088580
mov eax, 0x32
jmp 0x1008859f
cmp eax, 0x28d
jne 0x1008858e
mov eax, 0x44
jmp 0x1008859f
sub eax, 0x1400
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x8e
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
push 0
push eax
mov eax, dword [edx + 0xc]
call eax
xor edi, edi
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x30]
push eax
call edx
movzx cx, byte [esp + 0x29]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x100885f9
movzx dx, byte [esp + 0x28]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x10088609
movzx ax, byte [esp + 0x28]
shl ax, 8
or ax, cx
movzx eax, ax
movzx edx, ax
mov eax, edi
shr eax, 1
mov dword [esp + 0x10], edx
xor eax, edi
inc edi
fild dword [esp + 0x10]
fstp dword [esi + eax*4 + 0x14c]
cmp edi, 4
jb 0x100885b3
mov ecx, dword [esi + 0xc8]
mov eax, dword [esp + 0x14]
sub eax, 0x520
and ecx, 0xffffbfff
or ecx, 0x3000
neg eax
sbb eax, eax
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 1
and eax, 0xffffffa6
add eax, 0x70
push 0
push eax
mov eax, dword [edx + 0xc]
call eax
xor edi, edi
jmp 0x10088670
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x38]
push eax
call edx
movzx cx, byte [esp + 0x31]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x100886b6
movzx dx, byte [esp + 0x30]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x100886c6
movzx ax, byte [esp + 0x30]
shl ax, 8
or ax, cx
movzx eax, ax
mov edx, edi
shr edx, 1
xor edx, edi
inc edi
mov word [esi + edx*2 + 0x40a02], ax
cmp edi, 4
jb 0x10088670
mov eax, dword [esp + 0x48]
cmp eax, 0xa021
jne 0x10088794
xor edi, edi
jmp 0x100886f0
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x60], 0xff
mov byte [esp + 0x61], 0xff
mov byte [esp + 0x62], 0xff
mov byte [esp + 0x63], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x64]
push edx
call eax
movzx edx, byte [esp + 0x5e]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
movzx ecx, byte [esp + 0x5d]
jne 0x1008874d
movzx eax, byte [esp + 0x5f]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x5c]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x10088766
movzx eax, byte [esp + 0x5c]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x5f]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x10088778
fadd dword [0x1023ab98]
mov edx, edi
shr edx, 1
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0x14c]
cmp edi, 4
jb 0x100886f0
jmp 0x1008884b
cmp eax, 0xa028
jne 0x1008884b
xor edi, edi
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x5c], 0xff
mov byte [esp + 0x5d], 0xff
mov byte [esp + 0x5e], 0xff
mov byte [esp + 0x5f], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x60]
push edx
call eax
movzx edx, byte [esp + 0x5a]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
movzx ecx, byte [esp + 0x59]
jne 0x100887fe
movzx eax, byte [esp + 0x5b]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x58]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x10088817
movzx eax, byte [esp + 0x58]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x5b]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edx, edi
shr edx, 1
xor edx, edi
fld dword [esi + edx*4 + 0x14c]
lea ecx, [esi + edx*4 + 0x14c]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x1008883d
fadd dword [0x1023ab98]
fsubp st(1)
inc edi
fstp dword [ecx]
cmp edi, 4
jb 0x100887a1
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [esp + 0xb8]
mov eax, dword [eax + 0xc]
push 0
push 0
push edx
call eax
mov eax, dword [esp + 0x98]
test eax, eax
jne 0x10086e20
jmp 0x10088982
mov ecx, 0x4d4d
mov word [esi + 0x40a00], cx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
xor ecx, ecx
cmp ecx, dword [esi + 0x40a24]
jg 0x10088982
jl 0x100888b0
cmp eax, dword [esi + 0x40a20]
jae 0x10088982
lea ecx, [ecx]
cmp eax, 0x4000
jae 0x10088982
mov edi, ebp
mov ebp, ebx
mov ebx, dword [esp + 0xa8]
mov ecx, esi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ebx
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0xa8], ecx
cmp ebx, 0x100
jne 0x10088943
cmp ecx, ebx
jne 0x10088943
add edi, 0xfffffeff
cmp edi, 0x17e
ja 0x10088943
lea edx, [ebp - 0x101]
cmp edx, 0x17e
ja 0x10088943
xor eax, eax
lea ecx, [esi + 0x14c]
lea esp, [esp]
mov edx, dword [esp + eax*4 + 0x9c]
fild dword [esp + eax*4 + 0x9c]
test edx, edx
jge 0x10088938
fadd dword [0x1023ab98]
fstp dword [ecx]
inc eax
add ecx, 4
cmp eax, 4
jb 0x10088920
mov eax, dword [esi + 0xc8]
and eax, 0xffffbfff
or eax, 0x3000
mov dword [esi + 0xc8], eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
xor ecx, ecx
cmp ecx, dword [esi + 0x40a24]
jl 0x100888b0
jg 0x10088982
cmp eax, dword [esi + 0x40a20]
jb 0x100888b0
mov cx, word [esp + 0xac]
mov word [esi + 0x40a00], cx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f0
ret 8