Function at 0x100917a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3cc
fld1
push ebx
fst qword [esp + 0xc0]
xor ebx, ebx
fst qword [esp + 0xc8]
push esi
fst qword [esp + 0xd4]
mov esi, ecx
mov eax, dword [esi + 0x409f4]
fst qword [esp + 0xdc]
fldz
mov ecx, 1
fst qword [esp + 0xa4]
push edi
fst qword [esp + 0xb0]
mov dword [esp + 0x4c], 0x10
fst qword [esp + 0xb8]
mov dword [esp + 0x54], ebx
fstp qword [esp + 0xc0]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], ebx
fst qword [esp + 0x90]
mov dword [esp + 0x64], ebx
fst qword [esp + 0x98]
mov dword [esp + 0x68], ebx
fstp qword [esp + 0xa0]
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], 2
mov byte [esp + 0x2b], 3
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], 0xfff
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], ebx
cmp eax, 0xa
jb 0x1009188d
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esp + 0x20], eax
inc eax
mov dword [esi + 0x409f4], eax
xor edi, edi
lea ecx, [esp + 0x198]
xor eax, eax
xor edx, edx
cmp eax, edi
sete dl
inc eax
add ecx, 8
cmp eax, 4
mov dword [esp + 0x44], edx
fild dword [esp + 0x44]
fstp qword [ecx - 8]
jl 0x100918a3
inc edi
cmp edi, 4
jl 0x100918a1
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x1c], 0xff
mov byte [esp + 0x1d], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x20]
push edx
call eax
movzx dx, byte [esp + 0x19]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x1009190a
movzx ax, byte [esp + 0x18]
shl dx, 8
or dx, ax
movzx eax, dx
jmp 0x1009191a
movzx cx, byte [esp + 0x18]
shl cx, 8
or cx, dx
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x44], eax
cmp eax, 0x200
jbe 0x10091936
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, ebx
je 0x100920eb
mov edi, edi
mov ebx, dword [ebp + 8]
dec dword [esp + 0x44]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x80]
push eax
push ebx
mov ecx, esi
call fcn.100866d0
mov edi, dword [esp + 0x74]
cmp edi, 0x100
ja 0x10091b57
je case.0x10093053.61441
lea eax, [edi - 2]
cmp eax, 0x2c
ja case.0x100932f6.64773
movzx ecx, byte [eax + 0x100934b8]
jmp dword [ecx*4 + 0x10093484]
mov ecx, esi
call fcn.10076330
mov word [esi + 0xae], ax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
mov word [esi + 0xac], ax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
add word [esi + 0xae], ax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov dword [esi + 0x98], edx
jmp case.0x100932f6.64773
cmp dword [esp + 0x14], 3
jne case.0x100932f6.64773
cmp dword [esp + 0x1c], 1
jne case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx eax, ax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x10179a38]
fstp dword [esi + edi*8 + 0xc4]
mov ecx, dword [esi + 0xc8]
and ecx, 0xffffbfff
or ecx, 0x3000
mov dword [esi + 0xc8], ecx
jmp case.0x100932f6.64773
cmp dword [esp + 0x14], 3
jne case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esi + 0x202a8]
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx eax, ax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esi + edi*4 + 0xbc]
jmp case.0x100932f6.64773
cmp dword [esp + 0x1c], 0x32
jb case.0x100932f6.64773
fldz
lea edi, [esi + 0x14c]
fcomp dword [edi]
fnstsw ax
test ah, 0x44
jp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0xc
call eax
mov ebx, 3
mov ecx, esi
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0x10], ecx
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x10091ab4
mov edx, dword [esi + 0xc8]
and edx, 0xffffbfff
or edx, 0x3000
mov dword [esi + 0xc8], edx
jmp case.0x100932f6.64773
cmp dword [esp + 0x14], 7
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xff
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xd8
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
sub eax, 2
mov dword [esi + 0x409c8], eax
mov eax, dword [esp + 0x1c]
sbb edx, 0
mov dword [esi + 0x409cc], edx
mov dword [esi + 0x20590], eax
jmp case.0x100932f6.64773
cmp edi, 0x201
ja 0x1009229c
je case.0x10093053.61447
add edi, 0xfffffeff
cmp edi, 0x8f
ja case.0x100932f6.64773
movzx ecx, byte [edi + 0x10093544]
jmp dword [ecx*4 + 0x100934e8]
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.10076430
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x46a74], eax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*4 + 0x8d4f]
mov dword [esi + eax*8], edx
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
push 0x200
lea eax, [esi + 0x20344]
push eax
call edx
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
push 0x40
lea edx, [esi + 8]
push edx
call eax
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
push 0x40
lea eax, [esi + 0x48]
push eax
call edx
jmp case.0x100932f6.64773
cmp dword [esp + 0x14], 4
jne case.0x100932f6.64773
mov dword [esi + 0x46ca0], 0x1007cf10
mov dword [esi + 0x40a58], 0x2008
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x4c], 0xff
mov byte [esp + 0x4d], 0xff
mov byte [esp + 0x4e], 0xff
mov byte [esp + 0x4f], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x50]
push edx
call eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.10076390
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*4]
lea edi, [esi + edx*8]
add eax, ebx
cmp dword [edi + 0x46a70], 0
mov dword [edi + 0x46a7c], eax
jne case.0x100932f6.64773
test eax, eax
jle case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov ebx, dword [ecx]
cdq
push 0
push edx
push eax
mov eax, dword [ebx + 0xc]
call eax
push 1
lea ecx, [esp + 0x13c]
push ecx
mov ecx, esi
call fcn.10077da0
test eax, eax
je case.0x100932f6.64773
cmp dword [esp + 0x148], 0
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
mov dword [edi + 0x46a70], eax
mov eax, dword [esp + 0x144]
mov dword [edi + 0x46a74], 6
mov dword [edi + 0x46a68], ecx
mov dword [edi + 0x46a6c], edx
mov dword [edi + 0x46a84], eax
jne 0x10091d11
test al, 1
jne 0x10091d11
imul eax, ecx
mov dword [edi + 0x46a68], eax
mov ecx, dword [edi + 0x46a7c]
movsx ebx, word [esi + 0x40a00]
add ecx, 0xc
push ecx
mov ecx, esi
call fcn.100937e0
mov word [esi + 0x40a00], bx
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
and eax, 7
movsx ecx, byte [eax + str.50132467]
mov eax, dword [esp + 0x20]
sub ecx, 0x30
lea edx, [eax + eax*4]
mov dword [esi + edx*8 + 0x46a80], ecx
jmp case.0x100932f6.64773
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076430
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 7
lea edx, [eax + eax*4]
mov dword [esi + edx*8 + 0x46a84], ecx
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
push 0x40
lea edx, [esp + 0xfc]
push edx
call eax
push 5
lea ecx, [esp + 0xfc]
push str.Adobe
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10091e5f
push 5
lea edx, [esp + 0xfc]
push str.dcraw
push edx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10091e5f
push 5
lea eax, [esp + 0xfc]
push str.UFRaw
push eax
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10091e5f
push 6
lea ecx, [esp + 0xfc]
push str.Bibble
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10091e5f
push 0xa
lea edx, [esp + 0xfc]
push str.Nikon_Scan
push edx
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x10091e5f
mov ecx, str.Digital_Photo_Professional
lea eax, [esp + 0xf8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10091e52
test dl, dl
je 0x10091e4e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10091e52
add eax, 2
add ecx, 2
test dl, dl
jne 0x10091e32
xor eax, eax
jmp 0x10091e57
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x100932f6.64773
mov dword [esi + 0x88], 0
jmp case.0x100932f6.64773
push 0
mov ecx, esi
call fcn.100889a0
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
push 0x40
lea edx, [esi + 0x20544]
push edx
call eax
jmp case.0x100932f6.64773
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10076430
mov dword [esi + 0x40a50], eax
jmp case.0x100932f6.64773
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.10076430
mov dword [esi + 0x40a54], eax
jmp case.0x100932f6.64773
mov edi, dword [esp + 0x1c]
cmp edi, 1
jbe 0x10091ee3
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov dword [esp + 0x34], edx
jmp 0x10091ef2
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x46a7c], eax
cmp edi, 4
jne case.0x100932f6.64773
mov dword [esi + 0x46ca0], 0x10090d00
mov dword [esi + 0x88], 5
jmp case.0x100932f6.64773
mov eax, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edi, [esi + edx*8 + 0x46a8c]
mov dword [edi], 0
test eax, eax
jbe case.0x100932f6.64773
mov ebx, eax
mov ecx, esi
call fcn.100763f0
cmp eax, dword [edi]
jle 0x10091f51
mov dword [edi], eax
sub ebx, 1
jne 0x10091f44
jmp case.0x100932f6.64773
mov ecx, str.DSLR_A100
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10091f83
test dl, dl
je 0x10091f7f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10091f83
add eax, 2
add ecx, 2
test dl, dl
jne 0x10091f63
xor eax, eax
jmp 0x10091f88
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10091fca
mov edi, dword [esp + 0x20]
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x46a68], 0xf20
jne 0x10091fca
mov ecx, esi
mov dword [esi + 0x46ca0], 0x1007fd50
call fcn.100763f0
add eax, ebx
inc edi
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], 0
mov dword [esp + 0x20], edi
jmp case.0x100932f6.64773
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x10092037
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
dec ebx
call eax
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
push 0
mov ecx, esi
mov dword [esp + 0x14], eax
add edi, 0xc
call fcn.100763f0
add eax, dword [ebp + 8]
mov ecx, dword [esi + 0x409b0]
mov edx, dword [edi]
push 0
push eax
call edx
mov eax, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.100917a0
test eax, eax
jne 0x10092038
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
push eax
mov eax, dword [esp + 0x14]
add eax, 4
cdq
push edx
mov edx, dword [edi + 0xc]
push eax
call edx
test ebx, ebx
jne 0x10091fd2
mov dword [esp + 0x1c], ebx
dec ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [esp + 0x70]
mov edx, dword [edx + 0xc]
push 0
push 0
push eax
call edx
cmp dword [esp + 0x44], 0
jne 0x10091940
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x100920e9
push ebx
mov ecx, esi
call fcn.10072b60
mov edi, eax
test edi, edi
je 0x100920e9
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
push 0
push 0
push edx
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 1
push ebx
push edi
call eax
mov ecx, dword [esp + 0x24]
push ecx
push 1
mov edx, ebx
shr edx, 2
push edx
push edi
mov ecx, esi
call fcn.1007f8f0
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
push ebx
push edi
call edx
test eax, eax
jne 0x100920e1
mov eax, dword [esp + 0x2c]
neg eax
push eax
mov ecx, esi
call fcn.100917a0
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
call edx
push edi
mov ecx, esi
call fcn.10072be0
xor ebx, ebx
cmp dword [esi + 0x94], ebx
jle 0x10092135
mov eax, dword [esi + 0x94]
lea edi, [esp + 0x198]
lea ecx, [esp + 0xc8]
mov dword [esp + 0x24], eax
jmp 0x10092110
mov edx, dword [esi + 0x94]
mov eax, edi
fld qword [ecx]
add eax, 8
sub edx, 1
fmul qword [eax - 8]
fstp qword [eax - 8]
jne 0x10092118
add ecx, 8
add edi, 0x20
sub dword [esp + 0x24], 1
jne 0x10092110
cmp dword [esp + 0x54], ebx
je 0x100921cc
cmp dword [esi + 0x94], ebx
jle 0x100921bb
mov ecx, dword [esi + 0x94]
fldz
lea eax, [esp + 0x198]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x278]
mov dword [esp + 0x3c], ecx
xor edx, edx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x2c]
fst qword [eax]
mov edi, dword [esi + 0x94]
lea ebx, [esp + edx + 0x90]
lea edx, [esp + edx + 0x218]
fld qword [ecx]
add ecx, 8
fmul qword [edx]
add edx, 0x18
sub edi, 1
fmul qword [ebx]
fadd qword [eax]
fstp qword [eax]
jne 0x10092185
mov edx, dword [esp + 0x24]
add edx, 8
add eax, 8
cmp edx, 0x18
mov dword [esp + 0x24], edx
jl 0x1009216b
add dword [esp + 0x2c], 0x20
sub dword [esp + 0x3c], 1
jne 0x10092165
fstp st(0)
lea ecx, [esp + 0x278]
push ecx
mov ecx, esi
call fcn.10081400
xor ebx, ebx
fldz
fcomp qword [esp + 0xa8]
fnstsw ax
test ah, 0x44
jnp 0x10092228
fldz
xor eax, eax
cmp dword [esi + 0x94], ebx
fstp dword [esi + 0x158]
jle 0x10092210
fld1
lea ecx, [esi + 0x14c]
fld st(0)
inc eax
fdiv qword [esp + eax*8 + 0xa0]
add ecx, 4
fstp dword [ecx - 4]
cmp eax, dword [esi + 0x94]
jl 0x100921f6
fstp st(0)
mov edx, dword [esi + 0xc8]
and edx, 0xffffbfff
or edx, 0x3000
mov dword [esi + 0xc8], edx
cmp dword [esp + 0x54], ebx
jne 0x10092271
xor edx, edx
cmp dword [esi + 0x94], ebx
jle 0x1009225b
lea ecx, [esp + 0x198]
lea eax, [esi + 0x15c]
fld dword [eax]
inc edx
fdiv qword [ecx]
add eax, 4
add ecx, 0x28
fstp dword [eax - 4]
cmp edx, dword [esi + 0x94]
jl 0x10092245
mov eax, dword [esi + 0xc8]
and eax, 0xfffff7ff
or eax, 0x600
mov dword [esi + 0xc8], eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x1017e18c]
mov dword [esi + 8], eax
mov ecx, dword [0x1017e190]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x20220], 0xfff
jmp case.0x100932f6.64773
cmp edi, 0xc612
ja 0x10092c81
je 0x10092c3d
cmp edi, 0x8603
ja 0x10092667
je 0x1009258e
cmp edi, 0x7313
ja 0x100924ae
je 0x10092411
cmp edi, 0x7201
ja 0x10092390
je 0x10092380
cmp edi, 0x202
je case.0x10093053.61448
cmp edi, 0x7010
je 0x10092314
cmp edi, 0x7200
jne case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x2c], eax
jmp case.0x100932f6.64773
xor edi, edi
mov ecx, esi
call fcn.10076330
inc edi
shr eax, 2
and eax, 0xfff
cmp edi, 4
mov dword [esp + edi*4 + 0x78], eax
jl 0x10092316
xor ecx, ecx
mov edi, dword [esp + ecx*4 + 0x78]
inc edi
cmp edi, dword [esp + ecx*4 + 0x7c]
ja 0x10092363
mov eax, dword [esp + ecx*4 + 0x7c]
mov ebx, 1
sub eax, edi
shl ebx, cl
lea edx, [esi + edi*2 + 0x1fc]
inc eax
mov di, word [edx - 2]
add di, bx
mov word [edx], di
add edx, 2
sub eax, 1
jne 0x10092351
inc ecx
cmp ecx, 5
jl 0x10092331
mov edx, dword [esi + 0xc8]
and edx, 0xfffffffb
or edx, 3
mov dword [esi + 0xc8], edx
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x3c], eax
jmp case.0x100932f6.64773
sub edi, 0x7221
je 0x10092401
sub edi, 0x2f
je 0x100923de
sub edi, 0xb3
jne case.0x100932f6.64773
lea esp, [esp]
mov ecx, esi
call fcn.10076330
xor ecx, ecx
cmp edi, 2
setl cl
movzx eax, ax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
xor ecx, edi
inc edi
fstp dword [esi + ecx*4 + 0x14c]
cmp edi, 4
jl 0x100923b0
jmp 0x10091ad1
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
push eax
mov ecx, esi
call fcn.10089e60
xor eax, eax
mov word [esi + 0xaa], ax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x24], eax
jmp case.0x100932f6.64773
lea edi, [esi + 0x14c]
mov ebx, 4
lea esp, [esp]
mov ecx, esi
call fcn.10076330
movzx ecx, ax
mov dword [esp + 0x10], ecx
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x10092420
fld dword [0x1017e188]
fcom dword [esi + 0x150]
fnstsw ax
test ah, 0x44
jp 0x10092462
fcomp dword [esi + 0x154]
fnstsw ax
test ah, 0x44
jp 0x10092464
lea eax, [ebx + 1]
jmp 0x10092466
fstp st(0)
xor eax, eax
add eax, eax
fld dword [esi + eax*4 + 0x14c]
fadd dword [esi + eax*4 + 0x150]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esi + eax*4 + 0x14c]
fsub dword [esi + eax*4 + 0x150]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esi + eax*4 + 0x150]
fsubr dword [esi + eax*4 + 0x14c]
fstp dword [esi + eax*4 + 0x14c]
jmp 0x10091ad1
cmp edi, 0x829a
ja 0x1009251d
je 0x10092506
sub edi, 0x827d
je 0x10093469
sub edi, 0x11
je case.0x100932f6.64777
sub edi, 2
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
push 0
mov ecx, esi
add edi, 0xc
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [edi]
add eax, ebx
push 0
push eax
call edx
push ebx
mov ecx, esi
call fcn.10091030
jmp case.0x100932f6.64773
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10076480
fstp dword [esi + 0x202ac]
jmp case.0x100932f6.64773
sub edi, 0x829d
je 0x10092577
sub edi, 0x362
je 0x10092711
sub edi, 3
jne case.0x100932f6.64773
lea ebx, [ebx]
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov dword [esp + 0x10], edx
mov eax, edi
xor eax, 1
fild dword [esp + 0x10]
inc edi
cmp edi, 4
fdivr qword [0x1017e180]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esi + eax*4 + 0x14c]
jl 0x10092540
jmp 0x10091a19
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.10076480
fstp dword [esi + 0x202b0]
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 7
push 1
lea edx, [esp + 0x100]
push edx
call eax
push 6
lea ecx, [esp + 0xfc]
push str.MATRIX
push ecx
call fcn.101512b3
add esp, 0xc
test eax, eax
jne case.0x100932f6.64773
lea edx, [esi + 0x19c]
mov dword [esi + 0x94], 4
mov dword [esi + 0x409d4], eax
xor ebx, ebx
mov dword [esp + 0x10], edx
xor edi, edi
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
mov edx, edi
xor edx, 1
add edx, ebx
lea edx, [esi + edx*4 + 0x19c]
push edx
push 0x10232b90
call eax
inc edi
cmp edi, 4
jl 0x100925e4
cmp dword [esi + 0x40908], 0
je 0x10092655
mov edx, dword [esp + 0x10]
fldz
mov eax, edx
mov ecx, 4
fadd dword [eax]
add eax, 4
sub ecx, 1
jne 0x10092621
mov eax, edx
mov ecx, 4
fld dword [eax]
add eax, 4
sub ecx, 1
fdiv st(1)
fstp dword [eax - 4]
jne 0x10092632
mov ecx, dword [esi + 0xc8]
fstp st(0)
and ecx, 0xffffffdf
or ecx, 0x18
mov dword [esi + 0xc8], ecx
add dword [esp + 0x10], 0x10
add ebx, 4
cmp ebx, 0xc
jl 0x100925e2
jmp case.0x100932f6.64773
cmp edi, 0x9218
ja 0x10092820
je 0x100927b1
cmp edi, 0x8825
ja 0x10092758
je 0x10092728
sub edi, 0x8606
je 0x100926fc
sub edi, 0x163
je 0x100926cc
sub edi, 0xa
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov dword [esi + 0x409c0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x409c4], edx
mov dword [esi + 0x2029c], eax
jmp case.0x100932f6.64773
mov edx, dword [esi + 0x409b0]
mov edi, dword [edx]
push 0
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.10088aa0
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
push eax
mov ecx, esi
call fcn.10089070
mov ecx, dword [str.Leaf]
mov dword [esi + 8], ecx
mov dl, byte [0x1017d2a8]
mov byte [esi + 0xc], dl
jmp case.0x100932f6.64773
mov eax, dword [esi + 0x409b0]
mov edi, dword [eax]
push 0
mov ecx, esi
add edi, 0xc
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [edi]
add eax, ebx
push 0
push eax
call edx
push ebx
mov ecx, esi
call fcn.10088da0
jmp case.0x100932f6.64773
sub edi, 0x9102
je 0x1009279f
sub edi, 0x108
je 0x10092788
sub edi, 7
jne case.0x100932f6.64773
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076430
mov dword [esi + 0x202c0], eax
jmp case.0x100932f6.64773
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10076480
fstp dword [esi + 0x202b4]
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov dword [esi + 0x40a10], eax
jmp case.0x100932f6.64773
lea edx, [esi + 0x19c]
mov dword [esi + 0x409d4], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 3
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076480
fstp st(0)
mov edi, dword [esp + 0x10]
mov ebx, 3
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10076480
fstp dword [edi]
add edi, 4
sub ebx, 1
jne 0x100927e7
add dword [esp + 0x10], 0x10
sub dword [esp + 0x18], 1
jne 0x100927d0
mov edx, dword [esi + 0xc8]
and edx, 0xffffffdf
or edx, 0x18
mov dword [esi + 0xc8], edx
jmp case.0x100932f6.64773
cmp edi, 0xc517
ja 0x10092b6b
cmp edi, 0xc516
jae 0x10092abe
sub edi, 0xb4c2
je 0x1009286e
sub edi, 1
je 0x10092a7c
sub edi, 4
jne case.0x100932f6.64773
cmp dword [esp + 0x5c], edi
je case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
push edi
push 0x26
call edx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x28
call eax
mov ecx, esi
call fcn.100763f0
mov ecx, esi
mov word [esi + 0xaa], ax
call fcn.100763f0
mov ecx, esi
mov word [esi + 0xa8], ax
call fcn.100763f0
and eax, 7
mov ecx, esi
mov word [esi + 0xb2], ax
call fcn.100763f0
mov cx, word [esi + 0xaa]
and eax, 7
sub cx, ax
sub cx, word [esi + 0xb2]
mov word [esi + 0xae], cx
mov ecx, esi
call fcn.100763f0
and eax, 7
mov ecx, esi
mov word [esi + 0xb0], ax
call fcn.100763f0
mov dx, word [esi + 0xa8]
and eax, 7
sub dx, ax
sub dx, word [esi + 0xb0]
mov eax, 0x1c5e
mov word [esi + 0xac], dx
cmp word [esi + 0xaa], ax
jne 0x10092935
mov ecx, 0x1544
mov edx, 0x1c4c
mov eax, 7
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov word [esi + 0xb2], ax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x34
call eax
lea edi, [esi + 0x14c]
mov ebx, 3
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
add edi, 4
sub ebx, 1
fstp dword [edi - 4]
jne 0x10092953
mov ecx, dword [esi + 0xc8]
and ecx, 0xffffbfff
or ecx, 0x3000
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push ebx
push 0x72
call eax
mov ecx, esi
call fcn.10076330
movzx edi, word [esi + 0xae]
movzx ebx, word [esi + 0xac]
movzx ecx, di
movzx edx, bx
movzx eax, ax
imul ecx, edx
shr eax, 7
imul eax, eax, 0x5a
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov dword [esi + 0xc0], eax
cmp ecx, dword [esp + 0x5c]
jne 0x10092a09
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x100929fb
lea eax, [edi + ebx]
mov word [esi + 0xae], ax
sub ax, word [esi + 0xac]
sub word [esi + 0xae], ax
mov word [esi + 0xac], ax
xor eax, eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0x98], eax
movzx edx, word [esi + 0xae]
movzx ecx, word [esi + 0xac]
imul ecx, edx
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea ecx, [esi + 0x48]
push str.Ixpress__d_Mp
push ecx
call fcn.1014ffd1
add esp, 0xc
cmp dword [esi + 0x98], 0
mov dword [esi + 0x46ca0], 0x1007c660
je 0x10092a6d
test byte [esi + 0xb2], 1
je 0x10092a63
mov dword [esi + 0x98], 0x61616161
mov dword [esi + 0x46ca0], 0x1007cab0
mov dword [esi + 0x20220], 0xffff
jmp case.0x100932f6.64773
mov eax, dword [str.Imacon]
mov dword [esi + 8], eax
mov cx, word [0x10179f78]
mov word [esi + 0xc], cx
mov dl, byte [0x10179f7a]
mov ecx, dword [esi + 0x409b0]
mov byte [esi + 0xe], dl
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov dword [esi + 0x40a20], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x40a24], edx
mov dword [esp + 0x5c], eax
jmp case.0x100932f6.64773
mov ebx, dword [esp + 0x1c]
push ebx
mov ecx, esi
call fcn.10072b60
mov dword [esp + 0x10], eax
test eax, eax
je case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push ebx
mov edi, eax
mov eax, dword [edx + 8]
push 1
push edi
call eax
add edi, 0xffffffff
je 0x10092b5a
mov ecx, dword [esp + 0x10]
add ebx, ecx
cmp edi, ebx
jae 0x10092b5a
push 8
inc edi
push str.Neutral
push edi
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x10092b49
lea edx, [esi + 0x154]
push edx
lea eax, [esi + 0x150]
push eax
lea ecx, [esi + 0x14c]
push ecx
lea edx, [edi + 8]
push str._f__f__f
push edx
call fcn.10151503
mov eax, dword [esi + 0xc8]
and eax, 0xffffbfff
add esp, 0x14
or eax, 0x3000
mov dword [esi + 0xc8], eax
push 0xa
push edi
call fcn.10151a80
mov edi, eax
add esp, 8
test edi, edi
jne 0x10092af4
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, esi
call fcn.10072be0
jmp case.0x100932f6.64773
sub edi, 0xc51a
je 0x10092c09
sub edi, 1
jne case.0x100932f6.64773
movsx edx, word [esi + 0x40a00]
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x10]
call edx
mov ebx, eax
mov eax, dword [esi + 0x409f4]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.10076330
mov ecx, esi
mov word [esi + 0x40a00], ax
call fcn.10076330
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
push 0
mov ecx, esi
add edi, 0xc
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [edi]
add eax, ebx
push 0
push eax
call edx
push ebx
mov ecx, esi
call fcn.100917a0
mov eax, dword [esp + 0x18]
mov cx, word [esp + 0x10]
mov dword [esi + 0x20220], 0xffff
mov dword [esi + 0x409f4], eax
mov word [esi + 0x40a00], cx
jmp case.0x100932f6.64773
cmp byte [esi + 8], 0
jne case.0x100932f6.64773
mov edx, dword [str.Hasselblad]
mov dword [esi + 8], edx
mov eax, dword [0x1017e148]
mov dword [esi + 0xc], eax
mov cx, word [0x1017e14c]
mov word [esi + 0x10], cx
mov dl, byte [0x1017e14e]
mov byte [esi + 0x12], dl
jmp case.0x100932f6.64773
mov edi, 4
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
mov ecx, dword [esi + 0x8c]
shl ecx, 8
add eax, ecx
sub edi, 1
mov dword [esi + 0x8c], eax
jne 0x10092c42
cmp byte [esi + 8], 0
jne 0x10092c72
mov dword [esi + 8], 0x474e44
mov dword [esi + 0x88], 1
jmp case.0x100932f6.64773
cmp edi, 0xf000
ja 0x10093032
je 0x10092fbd
add edi, 0xffff39ea
cmp edi, 0x79
ja case.0x100932f6.64773
movzx edx, byte [edi + 0x1009361c]
jmp dword [edx*4 + 0x100935d4]
mov eax, dword [esp + 0x1c]
cmp eax, 4
jbe 0x10092cc2
mov eax, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0x409b0]
push eax
mov dword [esi + 0x94], eax
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x30]
push eax
call edx
jmp 0x10093391
mov ecx, esi
call fcn.10076330
cmp ax, 2
jne case.0x100932f6.64773
mov eax, 1
mov word [esi + 0x409de], ax
mov dword [esi + 0x98], 0x49494949
jmp case.0x100932f6.64773
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.10089770
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.10076330
movzx edx, ax
mov ecx, esi
mov dword [esp + 0x50], edx
call fcn.10076330
movzx eax, ax
mov dword [esp + 0x58], eax
jmp case.0x100932f6.64773
fldz
mov edi, dword [esp + 0x1c]
fst qword [esp + 0x30]
test edi, edi
jbe 0x10092d6d
mov ebx, dword [esp + 0x14]
push ebx
fstp st(0)
mov ecx, esi
call fcn.10076480
fadd qword [esp + 0x30]
sub edi, 1
fst qword [esp + 0x30]
jne 0x10092d52
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jge 0x10092d7f
fadd qword [0x1023a920]
fdivp st(1)
mov ecx, dword [esi + 0x201fc]
fadd qword [0x1023a7b8]
fild dword [esi + 0x201fc]
test ecx, ecx
jge 0x10092d9d
fadd qword [0x1023a920]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x30]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x201fc], edx
fldcw word [esp + 0x18]
jmp case.0x100932f6.64773
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076430
mov dword [esi + 0x20220], eax
jmp case.0x100932f6.64773
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.10076480
fstp qword [esi + 0xb8]
push edi
mov ecx, esi
call fcn.10076480
fdivr qword [esi + 0xb8]
fstp qword [esi + 0xb8]
jmp case.0x100932f6.64773
cmp dword [esi + 0x94], 0
mov dword [esp + 0x18], 0
jle 0x10092e57
lea edi, [esp + 0x218]
mov ebx, 3
jmp 0x10092e30
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10076480
fstp qword [edi]
add edi, 8
sub ebx, 1
jne 0x10092e30
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esi + 0x94]
mov dword [esp + 0x18], eax
jl 0x10092e26
mov dword [esp + 0x54], 1
jmp case.0x100932f6.64773
cmp dword [esi + 0x94], 0
mov dword [esp + 0x10], 0
jle case.0x100932f6.64773
lea edx, [esp + 0x198]
mov dword [esp + 0x18], edx
xor edi, edi
cmp dword [esi + 0x94], edi
jle 0x10092eac
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076480
fstp qword [ebx]
inc edi
add ebx, 8
cmp edi, dword [esi + 0x94]
jl 0x10092e92
mov eax, dword [esp + 0x10]
add dword [esp + 0x18], 0x20
inc eax
cmp eax, dword [esi + 0x94]
mov dword [esp + 0x10], eax
jl 0x10092e84
jmp case.0x100932f6.64773
xor edi, edi
cmp dword [esi + 0x94], edi
jle case.0x100932f6.64773
mov ebx, dword [esp + 0x14]
lea esp, [esp]
push ebx
mov ecx, esi
call fcn.10076480
fstp qword [esp + edi*8 + 0xc8]
inc edi
cmp edi, dword [esi + 0x94]
jl 0x10092ee0
jmp case.0x100932f6.64773
xor edi, edi
cmp dword [esi + 0x94], edi
jle case.0x100932f6.64773
mov ebx, dword [esp + 0x14]
nop
push ebx
mov ecx, esi
call fcn.10076480
fstp qword [esp + edi*8 + 0xa8]
inc edi
cmp edi, dword [esi + 0x94]
jl 0x10092f10
jmp case.0x100932f6.64773
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.10076480
fstp qword [esp + 0x90]
push edi
mov ecx, esi
call fcn.10076480
fst qword [esp + 0x98]
fld1
lea ecx, [esp + 0x90]
fsub qword [esp + 0x90]
mov eax, 0x10178678
fsubrp st(1)
fstp qword [esp + 0xa0]
lea ecx, [ecx]
fld dword [eax]
add eax, 4
fdivr qword [ecx]
add ecx, 8
cmp eax, 0x10178684
fstp qword [ecx - 8]
jl 0x10092f70
jmp case.0x100932f6.64773
cmp dword [esi + 0x8c], 0
jne case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov edi, eax
add edi, ebx
push edi
mov ecx, esi
call fcn.10089e60
mov ecx, dword [esi + 0x409b0]
mov eax, edi
cdq
push 0
push edx
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
push ebx
mov ecx, esi
call fcn.100917a0
jmp case.0x100932f6.64773
push 3
lea eax, [esi + 0x40a0a]
push eax
mov ecx, esi
call fcn.10076630
jmp case.0x100932f6.64773
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.10076430
push edi
mov ecx, esi
mov word [esi + 0xb0], ax
call fcn.10076430
push edi
mov ecx, esi
mov word [esi + 0xb2], ax
call fcn.10076430
sub ax, word [esi + 0xb0]
push edi
mov ecx, esi
mov word [esi + 0xac], ax
call fcn.10076430
sub ax, word [esi + 0xb2]
mov word [esi + 0xae], ax
jmp case.0x100932f6.64773
cmp edi, 0xf00e
ja 0x100932dd
je 0x1009329e
add edi, 0xffff0fff
cmp edi, 9
ja case.0x100932f6.64773
jmp dword [edi*4 + 0x10093698]
cmp dword [esp + 0x14], 3
jne 0x1009307e
mov ecx, esi
call fcn.10076330
mov ecx, dword [esp + 0x20]
movzx eax, ax
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x46a68], eax
jmp case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x44], 0xff
mov byte [esp + 0x45], 0xff
mov byte [esp + 0x46], 0xff
mov byte [esp + 0x47], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x48]
push eax
call edx
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.10076390
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x46a68], eax
jmp case.0x100932f6.64773
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.10076430
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x46a6c], eax
jmp case.0x100932f6.64773
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edi, [esi + edx*8]
and eax, 7
push ecx
mov ecx, esi
mov dword [edi + 0x46a84], eax
call fcn.10076430
mov dword [edi + 0x46a70], eax
jmp case.0x100932f6.64773
xor edx, edx
mov ecx, esi
mov word [esi + 0xa8], dx
mov dword [esi + 0x46ca0], 0x1007c740
call fcn.100763f0
test eax, eax
je 0x1009314c
mov eax, 0x18
mov dword [esi + 0x98], 0x16161616
mov dword [esi + 0x40a58], eax
jmp case.0x100932f6.64773
mov eax, 0x50
mov dword [esi + 0x40a58], eax
jmp case.0x100932f6.64773
mov ecx, esi
call fcn.100763f0
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*4]
mov dword [esi + edx*8 + 0x46a88], eax
jmp case.0x100932f6.64773
mov eax, 2
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.10076480
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x201fc], eax
fldcw word [esp + 0x10]
test ecx, ecx
je case.0x100932f6.64773
not ecx
test ecx, ecx
je case.0x100932f6.64773
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x60], eax
cmp ebx, 2
jne 0x100931ea
push edi
mov ecx, esi
call fcn.10076480
jmp 0x100931ee
fild dword [esp + 0x60]
call fcn.10153880
cmp dword [esp + 0x50], 2
mov dword [esp + 0x64], eax
jne 0x10093208
push edi
mov ecx, esi
call fcn.10076480
jmp 0x1009320c
fild dword [esp + 0x60]
call fcn.10153880
mov dword [esp + 0x68], eax
cmp ebx, 2
jne 0x1009322a
cmp dword [esp + 0x50], ebx
jne 0x1009322a
push edi
mov ecx, esi
call fcn.10076480
jmp 0x1009322e
fild dword [esp + 0x64]
call fcn.10153880
cmp dword [esi + 0x94], 3
mov dword [esp + 0x6c], eax
jne 0x1009326c
mov eax, dword [esi + 0x98]
mov ecx, eax
and ecx, 0xe2222222
add ecx, ecx
mov edx, eax
shr edx, 2
add ecx, ecx
and edx, 0x22222222
or ecx, edx
lea edx, [eax + eax]
and ecx, edx
or ecx, eax
mov dword [esi + 0x98], ecx
xor eax, eax
mov edi, edi
mov edx, dword [esi + 0x98]
lea ecx, [eax + eax]
shr edx, cl
mov ecx, dword [esp + eax*4 + 0x60]
inc eax
and edx, 3
cmp eax, 4
mov dword [esi + edx*4 + 0x20200], ecx
jl 0x10093270
mov dword [esi + 0x201fc], 0
jmp case.0x100932f6.64773
mov ebx, dword [esp + 0x14]
mov edi, 4
push ebx
mov ecx, esi
call fcn.10076430
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x100932c1
fadd dword [0x1023ab98]
mov eax, edi
cdq
mov ecx, 3
idiv ecx
dec edi
cmp edi, 1
fstp dword [esi + edx*4 + 0x14c]
jg 0x100932a7
jmp case.0x100932f6.64773
add edi, 0xffff02fc
cmp edi, 0xfe
ja case.0x100932f6.64773
movzx edx, byte [edi + 0x100936d4]
jmp dword [edx*4 + 0x100936c0]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ebx
cmp ebx, 0x10
jbe 0x10093313
mov ebx, 0x10
mov dword [esp + 0x4c], ebx
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push ebx
push 1
lea edx, [esp + 0xf0]
push edx
call eax
xor edi, edi
xor edx, edx
mov dword [esi + 0x94], edi
cmp ebx, edi
jbe 0x10093391
xor ebx, ebx
jmp 0x10093340
mov cl, byte [esp + edx + 0xe8]
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, edi
neg ecx
sbb ecx, ecx
inc ecx
inc edx
add ebx, ecx
or edi, eax
cmp edx, dword [esp + 0x4c]
jb 0x10093340
mov dword [esi + 0x94], ebx
cmp edi, 0x38
jne 0x10093384
mov dx, word [0x1017e140]
mov al, byte [0x1017e142]
mov word [esp + 0x28], dx
mov byte [esp + 0x2a], al
jmp 0x10093391
cmp edi, 0x3a
jne 0x10093391
mov dword [esp + 0x28], 0x1040305
xor eax, eax
cmp dword [esi + 0x94], eax
jle 0x100933b2
mov ecx, dword [esi + 0x94]
movzx edx, byte [esp + eax + 0x28]
mov byte [esp + edx + 0x2d8], al
inc eax
cmp eax, ecx
jl 0x100933a1
mov byte [eax + esi + 0x9c], 0
mov edi, dword [esi + 0x98]
mov ecx, 0x10
dec ecx
xor edx, edx
mov eax, ecx
div dword [esp + 0x4c]
movzx eax, byte [esp + edx + 0xe8]
movzx edx, byte [esp + eax + 0x2d8]
lea eax, [edi*4]
or edx, eax
mov edi, edx
test ecx, ecx
jne 0x100933c5
mov dword [esi + 0x98], edi
jmp case.0x100932f6.64773
cmp dword [esp + 0x1c], 0xd
jb case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
xor edi, edi
push edi
push 0x10
call edx
mov ecx, esi
call fcn.100763f0
mov ecx, dword [esi + 0x409b0]
push 1
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], edi
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push edi
push 0x1c
call edx
mov ecx, esi
call fcn.100763f0
add dword [esi + 0x40a20], eax
mov dword [esi + 0x46ca0], 0x1007c740
adc dword [esi + 0x40a24], edi
jmp case.0x100932f6.64773
cmp dword [esp + 0x14], 2
jne case.0x100932f6.64773
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
push 0x40
lea edx, [esi + 0x20258]
push edx
call eax
jmp case.0x100932f6.64773