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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34c
mov eax, dword [0x102832a0]
xor eax, esp
mov dword [esp + 0x348], eax
fld1
xor eax, eax
fst qword [esp + 0x94]
push ebx
fst qword [esp + 0xa0]
push esi
mov esi, dword [ebp + 8]
fst qword [esp + 0xac]
mov ebx, dword [esi + 0x65b8]
fst qword [esp + 0xb4]
fldz
push edi
fst qword [esp + 0x80]
mov dword [esp + 0x38], 0x10
fst qword [esp + 0x88]
mov dword [esp + 0x3c], eax
fst qword [esp + 0x90]
mov dword [esp + 0x44], eax
fstp qword [esp + 0x98]
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 1
mov byte [esp + 0x26], 2
mov byte [esp + 0x27], 3
fst qword [esp + 0x68]
mov dword [esp + 0x50], eax
fst qword [esp + 0x70]
mov dword [esp + 0x54], eax
fstp qword [esp + 0x78]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0xfff
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
cmp ebx, 0xa
jb 0x100ed16a
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x348]
xor ecx, esp
call fcn.1010583a
mov esp, ebp
pop ebp
ret
lea ecx, [ebx + 1]
mov dword [esi + 0x65b8], ecx
mov dword [esp + 0x48], ebx
xor edi, edi
lea ecx, [esp + 0x100]
jmp 0x100ed184
xor eax, eax
xor edx, edx
cmp eax, edi
sete dl
inc eax
add ecx, 8
cmp eax, 4
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp qword [ecx - 8]
jl 0x100ed184
inc edi
cmp edi, 4
jl 0x100ed182
push esi
call fcn.100d81e0
movzx eax, ax
add esp, 4
cmp eax, 0x200
ja 0x100ed150
test eax, eax
je 0x100ed835
jmp 0x100ed1c6
mov ebx, dword [esp + 0x48]
dec eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x58]
push eax
push ecx
push esi
call fcn.100e7610
mov edi, dword [esp + 0x64]
add esp, 0x18
cmp edi, 0x827d
ja 0x100edbe1
je 0x100edbc5
cmp edi, 0x26
ja 0x100ed2b4
cmp edi, 0x24
jae 0x100ed294
lea eax, [edi - 2]
cmp eax, 0x15
ja case.0x100ed5d4.307
movzx edx, byte [eax + 0x100ee7dc]
jmp dword [edx*4 + 0x100ee7c8]
cmp dword [esp + 0x18], 3
jne case.0x100ed5d4.307
cmp dword [esp + 0x1c], 1
jne case.0x100ed5d4.307
push esi
call fcn.100d81e0
movzx eax, ax
mov dword [esp + 0x14], eax
add esp, 4
fild dword [esp + 0x10]
fmul qword [0x1026c040]
fstp dword [esi + edi*8 + 0xe63c]
jmp case.0x100ed5d4.307
cmp dword [esp + 0x18], 3
jne case.0x100ed5d4.307
push esi
call fcn.100d81e0
movzx ecx, ax
mov dword [esp + 0x14], ecx
add esp, 4
fild dword [esp + 0x10]
fstp dword [esi + 0x6560]
jmp case.0x100ed5d4.307
push esi
call fcn.100d81e0
movzx edx, ax
mov dword [esp + 0x14], edx
add esp, 4
fild dword [esp + 0x10]
fstp dword [esi + edi*4 + 0xe634]
jmp case.0x100ed5d4.307
cmp edi, 0x131
ja 0x100ed5ac
je 0x100ed4de
add edi, 0xffffffd9
cmp edi, 0xfc
ja case.0x100ed5d4.307
movzx eax, byte [edi + 0x100ee834]
jmp dword [eax*4 + 0x100ee7f4]
cmp dword [esp + 0x1c], 0x32
jb case.0x100ed5d4.307
fldz
lea edi, [esi + 0xe6c4]
fcomp dword [edi]
fnstsw ax
test ah, 0x44
jp case.0x100ed5d4.307
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xc
push edx
call eax
add esp, 0xc
mov ebx, 3
lea ebx, [ebx]
push esi
call fcn.100d81e0
movzx ecx, ax
mov dword [esp + 0x14], ecx
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100ed320
jmp case.0x100ed5d4.307
cmp dword [esp + 0x18], 7
jne case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
add esp, 4
cmp eax, 0xff
jne case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
add esp, 4
cmp eax, 0xd8
jne case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
mov edx, dword [esp + 0x20]
add esp, 4
sub eax, 2
mov dword [esi + 0x6594], eax
mov dword [esi + 0x65a0], edx
jmp case.0x100ed5d4.307
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d82c0
lea ecx, [ebx + ebx*8 + 0x1830]
add esp, 8
mov dword [esi + ecx*4], eax
jmp case.0x100ed5d4.307
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100d82c0
lea ecx, [ebx + ebx*8]
add esp, 8
mov dword [esi + ecx*4 + 0x60c4], eax
jmp case.0x100ed5d4.307
mov eax, dword [esp + 0x1c]
lea edx, [ebx + ebx*8]
lea edi, [esi + edx*4]
and eax, 7
push esi
mov dword [edi + 0x60dc], eax
call fcn.100d81e0
movzx ecx, ax
add esp, 4
mov dword [edi + 0x60c8], ecx
jmp case.0x100ed5d4.307
push esi
call fcn.100d81e0
movzx edx, ax
lea eax, [ebx + ebx*8]
add esp, 4
mov dword [esi + eax*4 + 0x60cc], edx
jmp case.0x100ed5d4.307
push esi
call fcn.100d81e0
movzx ecx, ax
lea edx, [ebx + ebx*8]
add esp, 4
mov dword [esi + edx*4 + 0x60d0], ecx
jmp case.0x100ed5d4.307
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x200
lea ecx, [esi + 0x6255]
push ecx
push edx
call eax
add esp, 0x10
jmp case.0x100ed5d4.307
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
push 0x40
lea edx, [esi + 0x6455]
push edx
push eax
call ecx
add esp, 0xc
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x10]
push 0x40
lea eax, [esi + 0x6495]
push eax
push ecx
call edx
add esp, 0xc
jmp case.0x100ed5d4.307
push esi
call fcn.100d81e0
add esp, 4
lea ecx, [ebx + ebx*8]
and eax, 7
movsx eax, byte [eax + str.50132467]
sub eax, 0x30
mov dword [esi + ecx*4 + 0x60d8], eax
jmp case.0x100ed5d4.307
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100d82c0
add esp, 8
and eax, 7
lea ecx, [ebx + ebx*8]
mov dword [esi + ecx*4 + 0x60dc], eax
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x10]
push 0x40
lea eax, [esp + 0x1f4]
push eax
push ecx
call edx
push 5
lea eax, [esp + 0x200]
push str.Adobe
push eax
call fcn.10108f1d
add esp, 0x18
test eax, eax
je 0x100ed59d
push 5
lea ecx, [esp + 0x1f4]
push str.dcraw
push ecx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100ed59d
push 6
lea edx, [esp + 0x1f4]
push str.Bibble
push edx
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100ed59d
push 0xa
lea eax, [esp + 0x1f4]
push str.Nikon_Scan
push eax
call fcn.10108f1d
add esp, 0xc
test eax, eax
je 0x100ed59d
mov ecx, str.Digital_Photo_Professional
lea eax, [esp + 0x1f0]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100ed590
test dl, dl
je 0x100ed58c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100ed590
add eax, 2
add ecx, 2
test dl, dl
jne 0x100ed570
xor eax, eax
jmp 0x100ed595
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x100ed5d4.307
mov dword [esi + 0x65e4], 0
jmp case.0x100ed5d4.307
cmp edi, 0x201
ja 0x100eda7c
je case.0x100ed2dc.273
add edi, 0xfffffece
cmp edi, 0x5e
ja case.0x100ed5d4.307
movzx ecx, byte [edi + 0x100ee954]
jmp dword [ecx*4 + 0x100ee934]
push 0
push esi
call fcn.100e8990
add esp, 8
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 1
push 0x40
lea eax, [esi + 0x6515]
push eax
push ecx
call edx
add esp, 0x10
jmp case.0x100ed5d4.307
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d82c0
add esp, 8
mov dword [esi + 0x65f4], eax
jmp case.0x100ed5d4.307
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100d82c0
add esp, 8
mov dword [esi + 0x65f8], eax
jmp case.0x100ed5d4.307
mov edi, dword [esp + 0x1c]
cmp edi, 1
jbe 0x100ed650
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
jmp 0x100ed656
push esi
call fcn.100d8280
add esp, 4
lea edx, [ebx + ebx*8]
mov dword [esi + edx*4 + 0x60d4], eax
cmp edi, 4
jne case.0x100ed5d4.307
mov dword [esi + 0x2e74c], 0x100ece50
mov dword [esi + 0x65e4], 5
jmp case.0x100ed5d4.307
mov edi, str.DSLR_A100
lea eax, [esi + 0x6495]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x100ed6b0
test cl, cl
je 0x100ed6ac
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x100ed6b0
add eax, 2
add edi, 2
test cl, cl
jne 0x100ed690
xor eax, eax
jmp 0x100ed6b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100ed6e5
lea eax, [ebx + ebx*8 + 0x1830]
cmp dword [esi + eax*4], 0xf20
jne 0x100ed6e5
push esi
call fcn.100d8280
add eax, dword [ebp + 0xc]
add esp, 4
inc ebx
mov dword [esi + 0x6590], eax
mov dword [esp + 0x48], ebx
jmp case.0x100ed5d4.307
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x100ed74f
lea ecx, [ecx]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
dec ebx
call eax
mov edi, dword [esi]
add esp, 4
push 0
push esi
mov dword [esp + 0x28], eax
add edi, 8
call fcn.100d8280
add eax, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [edi]
add esp, 4
push eax
push ecx
call edx
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.100ed090
add esp, 0x14
test eax, eax
jne 0x100ed750
mov edx, dword [esp + 0x20]
mov ecx, dword [esi]
mov ecx, dword [ecx + 8]
push eax
mov eax, dword [esi + 4]
add edx, 4
push edx
push eax
call ecx
add esp, 0xc
test ebx, ebx
jne 0x100ed6f0
mov dword [esp + 0x1c], ebx
dec ebx
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x40]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 8]
push 0
push edx
push eax
call ecx
mov eax, dword [esp + 0x38]
add esp, 0xc
test eax, eax
jne 0x100ed1c2
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x100ed835
push ebx
call fcn.10109f92
mov edi, eax
add esp, 4
test edi, edi
je 0x100ed835
mov eax, dword [esp + 0x28]
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 [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 1
push ebx
push edi
push ecx
call edx
mov eax, dword [esp + 0x50]
push eax
mov ecx, ebx
push 1
shr ecx, 2
push ecx
push edi
call fcn.100e0a10
mov edx, dword [esi]
mov eax, dword [esi + 4]
add esp, 0x2c
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], eax
mov dword [esi], 0x10282170
call fcn.1010e998
mov dword [esi + 4], eax
test eax, eax
je 0x100ed81f
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push 1
push ebx
push edi
push eax
call edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 0
push 0
push ecx
call edx
mov eax, dword [esp + 0x44]
neg eax
push eax
push esi
call fcn.100ed090
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0xc]
push ecx
call edx
add esp, 0x28
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
push edi
mov dword [esi], eax
mov dword [esi + 4], ecx
call fcn.10109eb5
add esp, 4
cmp dword [esi + 0x661c], 0
jle 0x100ed87b
mov ebx, dword [esi + 0x661c]
lea edi, [esp + 0x100]
lea ecx, [esp + 0xa0]
mov edx, dword [esi + 0x661c]
mov eax, edi
lea ebx, [ebx]
fld qword [ecx]
add eax, 8
sub edx, 1
fmul qword [eax - 8]
fstp qword [eax - 8]
jne 0x100ed860
add ecx, 8
add edi, 0x20
sub ebx, 1
jne 0x100ed852
cmp dword [esp + 0x3c], 0
je 0x100ed916
cmp dword [esi + 0x661c], 0
jle 0x100ed905
mov ecx, dword [esi + 0x661c]
fldz
lea edx, [esp + 0x100]
mov dword [esp + 0x28], edx
lea eax, [esp + 0x1f0]
mov dword [esp + 0x30], ecx
xor edx, edx
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x28]
fst qword [eax]
mov edi, dword [esi + 0x661c]
lea ebx, [esp + edx + 0x68]
lea edx, [esp + edx + 0x180]
fld qword [edx]
add ecx, 8
fmul qword [ecx - 8]
add edx, 0x18
sub edi, 1
fmul qword [ebx]
fadd qword [eax]
fstp qword [eax]
jne 0x100ed8ce
mov edx, dword [esp + 0x34]
add edx, 8
add eax, 8
cmp edx, 0x18
mov dword [esp + 0x34], edx
jl 0x100ed8b7
add dword [esp + 0x28], 0x20
sub dword [esp + 0x30], 1
jne 0x100ed8b1
fstp st(0)
lea eax, [esp + 0x1f0]
push eax
push esi
call fcn.100e27c0
add esp, 8
fldz
fcomp qword [esp + 0x80]
fnstsw ax
test ah, 0x44
jnp 0x100ed962
fldz
xor eax, eax
cmp dword [esi + 0x661c], eax
fstp dword [esi + 0xe6d0]
jle 0x100ed962
fld1
lea ecx, [esi + 0xe6c4]
fld qword [esp + eax*8 + 0x80]
inc eax
fstp dword [esp + 0x2c]
add ecx, 4
fld dword [esp + 0x2c]
fdivr st(1)
fstp dword [ecx - 4]
cmp eax, dword [esi + 0x661c]
jl 0x100ed940
fstp st(0)
cmp dword [esp + 0x3c], 0
jne 0x100ed99e
xor edx, edx
cmp dword [esi + 0x661c], edx
jle 0x100ed99e
lea ecx, [esp + 0x100]
lea eax, [esi + 0xe6d4]
fld dword [eax]
inc edx
fld qword [ecx]
add eax, 4
fstp dword [esp + 0x2c]
add ecx, 0x28
fdiv dword [esp + 0x2c]
fstp dword [eax - 4]
cmp edx, dword [esi + 0x661c]
jl 0x100ed980
mov ecx, dword [esp + 0x354]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.1010583a
mov esp, ebp
pop ebp
ret
mov edx, dword [str.Sarnoff]
mov dword [esi + 0x6455], edx
mov eax, dword [0x101d0cd4]
mov dword [esi + 0x6459], eax
mov dword [esi + 0x65cc], 0xfff
jmp case.0x100ed5d4.307
push esi
call fcn.100d8280
mov ecx, dword [ebp + 0xc]
lea edx, [ebx + ebx*8]
lea edi, [esi + edx*4]
add eax, ecx
add esp, 4
cmp dword [edi + 0x60c8], 0
mov dword [edi + 0x60d4], eax
jne case.0x100ed5d4.307
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0
push eax
mov eax, dword [ecx + 8]
push edx
call eax
push 1
lea ecx, [esp + 0xd4]
push ecx
push esi
call fcn.100d9db0
add esp, 0x18
test eax, eax
je case.0x100ed5d4.307
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
xor ecx, ecx
cmp eax, 2
sete cl
shl edx, cl
lea ecx, [ebx + ebx*8 + 0x1830]
mov dword [edi + 0x60cc], 6
mov dword [edi + 0x60dc], eax
mov dword [esi + ecx*4], edx
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov dword [edi + 0x60c4], edx
mov dword [edi + 0x60c8], ecx
jmp case.0x100ed5d4.307
cmp edi, 0x7201
ja 0x100edb47
je 0x100edb35
cmp edi, 0x202
je case.0x100ed2dc.279
cmp edi, 0x7010
je 0x100edac0
cmp edi, 0x7200
jne case.0x100ed5d4.307
push esi
call fcn.100d8280
add esp, 4
mov dword [esp + 0x28], eax
jmp case.0x100ed5d4.307
xor edi, edi
push esi
call fcn.100d81e0
inc edi
add esp, 4
shr eax, 2
and eax, 0xfff
cmp edi, 4
mov dword [esp + edi*4 + 0x50], eax
jl 0x100edac2
xor ecx, ecx
mov edi, dword [esp + ecx*4 + 0x50]
inc edi
cmp edi, dword [esp + ecx*4 + 0x54]
jg 0x100edb12
mov eax, dword [esp + ecx*4 + 0x54]
mov ebx, 1
sub eax, edi
shl ebx, cl
lea edx, [esi + edi*2 + 0x66b4]
inc eax
nop
mov di, word [edx - 2]
add di, bx
mov word [edx], di
add edx, 2
sub eax, 1
jne 0x100edb00
inc ecx
cmp ecx, 5
jl 0x100edadf
jmp case.0x100ed5d4.307
push esi
call fcn.100d8280
lea edx, [ebx + ebx*8]
add esp, 4
mov dword [esi + edx*4 + 0x60e0], eax
jmp case.0x100ed5d4.307
push esi
call fcn.100d8280
add esp, 4
mov dword [esp + 0x30], eax
jmp case.0x100ed5d4.307
sub edi, 0x7221
je 0x100edbb3
sub edi, 0x2f
je 0x100edb90
sub edi, 0xb3
jne case.0x100ed5d4.307
push esi
call fcn.100d81e0
xor ecx, ecx
add esp, 4
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 + 0xe6c4]
cmp edi, 4
jl 0x100edb60
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
push eax
push esi
call fcn.100ef090
add esp, 0xc
xor edx, edx
mov word [esi + 0x65fe], dx
jmp case.0x100ed5d4.307
push esi
call fcn.100d8280
add esp, 4
mov dword [esp + 0x34], eax
jmp case.0x100ed5d4.307
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x10]
push 0x40
lea ecx, [esi + 0x64d5]
push ecx
push edx
call eax
add esp, 0xc
jmp case.0x100ed5d4.307
cmp edi, 0xc612
ja 0x100ee2ce
je 0x100ee2a0
cmp edi, 0x8773
ja 0x100ede33
je case.0x100ee2f6.50831
cmp edi, 0x85ff
ja 0x100edc93
je 0x100eddde
add edi, 0xffff7d72
cmp edi, 0xf
ja case.0x100ed5d4.307
movzx ecx, byte [edi + 0x100ee9c8]
jmp dword [ecx*4 + 0x100ee9b4]
mov edi, dword [esi]
push 0
push esi
add edi, 8
call fcn.100d8280
mov ebx, dword [ebp + 0xc]
mov edx, dword [esi + 4]
add eax, ebx
add esp, 4
push eax
mov eax, dword [edi]
push edx
call eax
push ebx
push esi
call fcn.100e9300
add esp, 0x14
jmp case.0x100ed5d4.307
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100d8300
fstp dword [esi + 0x6564]
add esp, 8
jmp case.0x100ed5d4.307
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100d8300
fstp dword [esi + 0x6568]
add esp, 8
jmp case.0x100ed5d4.307
cmp edi, 0x8606
ja 0x100eddfa
je 0x100eddc9
sub edi, 0x8602
je 0x100edd8c
sub edi, 1
jne case.0x100ed5d4.307
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 7
push 1
lea ecx, [esp + 0x1f8]
push ecx
push edx
call eax
push 6
lea ecx, [esp + 0x204]
push 0x101d0cc8
push ecx
call fcn.10108f1d
add esp, 0x1c
test eax, eax
jne case.0x100ed5d4.307
xor ebx, ebx
lea edx, [esi + 0xe714]
mov dword [esi + 0x661c], 4
mov dword [esi + 0x65d4], ebx
mov dword [esp + 0x10], edx
jmp 0x100edd10
xor edi, edi
mov eax, dword [esi]
mov ecx, edi
xor ecx, 1
add ecx, ebx
lea edx, [esi + ecx*4 + 0xe714]
mov ecx, dword [esi + 4]
push edx
mov edx, dword [eax + 0x20]
push 0x101d092c
push ecx
call edx
inc edi
add esp, 0xc
cmp edi, 4
jl 0x100edd12
cmp dword [esi + 0xac], 0
je 0x100edd7a
mov edx, dword [esp + 0x10]
fldz
mov eax, edx
mov ecx, 4
fadd dword [eax]
add eax, 4
sub ecx, 1
jne 0x100edd50
fstp dword [esp + 0x20]
mov eax, edx
fld dword [esp + 0x20]
mov ecx, 4
fld dword [eax]
add eax, 4
sub ecx, 1
fdiv st(1)
fstp dword [eax - 4]
jne 0x100edd69
fstp st(0)
add dword [esp + 0x10], 0x10
add ebx, 4
cmp ebx, 0xc
jl 0x100edd10
jmp case.0x100ed5d4.307
xor edi, edi
mov edi, edi
push esi
call fcn.100d81e0
movzx eax, ax
mov dword [esp + 0x14], eax
mov ecx, edi
xor ecx, 1
fild dword [esp + 0x14]
inc edi
add esp, 4
cmp edi, 4
fdivr qword [0x101d0cc0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esi + ecx*4 + 0xe6c4]
jl 0x100edd90
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
push eax
push esi
call fcn.100e8d80
add esp, 0xc
mov edx, dword [str.Leaf]
mov dword [esi + 0x6455], edx
mov al, byte [0x101cc880]
mov byte [esi + 0x6459], al
jmp case.0x100ed5d4.307
cmp edi, 0x8769
jne case.0x100ed5d4.307
mov edi, dword [esi]
push 0
push esi
add edi, 8
call fcn.100d8280
mov ebx, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [edi]
add esp, 4
add eax, ebx
push eax
push ecx
call edx
push ebx
push esi
call fcn.100e8a90
add esp, 0x14
jmp case.0x100ed5d4.307
cmp edi, 0xb4c3
ja 0x100edf5f
je 0x100edf19
cmp edi, 0x9211
ja 0x100edea9
je 0x100ede90
cmp edi, 0x9102
je 0x100ede7c
cmp edi, 0x920a
jne case.0x100ed5d4.307
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d8300
fstp dword [esi + 0x656c]
add esp, 8
jmp case.0x100ed5d4.307
push esi
call fcn.100d8280
add esp, 4
mov dword [esi + 0x657c], eax
jmp case.0x100ed5d4.307
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100d82c0
add esp, 8
mov dword [esi + 0x6578], eax
jmp case.0x100ed5d4.307
cmp edi, 0x9218
jne case.0x100ed5d4.307
lea edx, [esi + 0xe714]
mov dword [esi + 0x65d4], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], 3
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d8300
fstp st(0)
mov edi, dword [esp + 0x18]
add esp, 8
mov ebx, 3
lea ebx, [ebx]
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100d8300
fstp dword [edi]
add esp, 8
add edi, 4
sub ebx, 1
jne 0x100edef0
add dword [esp + 0x10], 0x10
sub dword [esp + 0x20], 1
jne 0x100eded1
jmp case.0x100ed5d4.307
mov edx, dword [str.Imacon]
mov dword [esi + 0x6455], edx
mov ax, word [0x101d0cb8]
mov edx, dword [esi]
mov word [esi + 0x6459], ax
mov cl, byte [0x101d0cba]
mov eax, dword [esi + 4]
mov byte [esi + 0x645b], cl
mov ecx, dword [edx + 0x18]
push eax
call ecx
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [esi + 0x6590], eax
mov dword [esp + 0x44], edx
jmp case.0x100ed5d4.307
cmp edi, 0xc517
ja 0x100ee212
cmp edi, 0xc516
jae 0x100ee16f
cmp edi, 0xb4c7
jne case.0x100ed5d4.307
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x4e
push ecx
call edx
push esi
call fcn.100d8280
push esi
mov word [esi + 0x65fe], ax
call fcn.100d8280
push esi
mov word [esi + 0x65fc], ax
call fcn.100d8280
and eax, 7
push esi
mov word [esi + 0x6606], ax
call fcn.100d8280
mov cx, word [esi + 0x65fe]
and eax, 7
sub cx, ax
sub cx, word [esi + 0x6606]
push esi
mov word [esi + 0x6602], cx
call fcn.100d8280
and eax, 7
push esi
mov word [esi + 0x6604], ax
call fcn.100d8280
mov dx, word [esi + 0x65fc]
and eax, 7
sub dx, ax
sub dx, word [esi + 0x6604]
mov eax, 0x1c5e
add esp, 0x24
mov word [esi + 0x6600], dx
cmp word [esi + 0x65fe], ax
jne 0x100ee043
mov ecx, 0x1544
mov edx, 0x1c4c
mov eax, 7
mov word [esi + 0x6600], cx
mov word [esi + 0x6602], dx
mov word [esi + 0x6606], ax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x34
push edx
call eax
add esp, 0xc
lea edi, [esi + 0xe6c4]
mov ebx, 3
push 0xb
push esi
call fcn.100d8300
fstp dword [edi]
add esp, 8
add edi, 4
sub ebx, 1
jne 0x100ee060
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x72
push edx
call eax
push esi
call fcn.100d81e0
movzx edi, word [esi + 0x6602]
movzx ebx, word [esi + 0x6600]
movzx ecx, bx
movzx edx, di
movzx eax, ax
imul ecx, edx
shr eax, 7
imul eax, eax, 0x5a
lea ecx, [ecx + ecx*2]
add ecx, ecx
add esp, 0x10
mov dword [esi + 0x6614], eax
cmp ecx, dword [esp + 0x44]
jne 0x100ee0f9
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x100ee0eb
mov eax, ebx
xor eax, edi
xor word [esi + 0x6600], ax
mov word [esi + 0x6602], ax
movzx eax, word [esi + 0x6600]
xor word [esi + 0x6602], ax
xor eax, eax
mov dword [esi + 0x6614], eax
mov dword [esi + 0x6580], eax
movzx edx, word [esi + 0x6600]
movzx ecx, word [esi + 0x6602]
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 + 0x6495]
push str.Ixpress__d_Mp
push ecx
call fcn.10106a28
add esp, 0xc
cmp dword [esi + 0x6580], 0
mov dword [esi + 0x2e74c], 0x100ddb60
je 0x100ee160
test byte [esi + 0x6606], 1
je 0x100ee156
mov dword [esi + 0x6580], 0x61616161
mov dword [esi + 0x2e74c], fcn.100ddd50
mov dword [esi + 0x65cc], 0xffff
jmp case.0x100ed5d4.307
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.10109f92
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je case.0x100ed5d4.307
mov edx, dword [esi]
mov ecx, dword [edx]
push ebx
mov edi, eax
mov eax, dword [esi + 4]
push 1
push edi
push eax
call ecx
add esp, 0x10
add edi, 0xffffffff
je 0x100ee200
mov edx, dword [esp + 0x10]
add ebx, edx
lea ebx, [ebx]
cmp edi, ebx
jae 0x100ee200
push 8
inc edi
push str.Neutral
push edi
call fcn.10108f1d
add esp, 0xc
test eax, eax
jne 0x100ee1ef
lea eax, [esi + 0xe6cc]
push eax
lea ecx, [esi + 0xe6c8]
push ecx
lea edx, [esi + 0xe6c4]
push edx
lea eax, [edi + 8]
push str._f__f__f
push eax
call fcn.10105ab9
add esp, 0x14
push 0xa
push edi
call fcn.10108ff0
mov edi, eax
add esp, 8
test edi, edi
jne 0x100ee1b0
mov ecx, dword [esp + 0x10]
push ecx
call fcn.10109eb5
add esp, 4
jmp case.0x100ed5d4.307
cmp edi, 0xc51b
jne case.0x100ed5d4.307
movsx edx, word [esi + 0x6244]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x18]
push ecx
call edx
mov ebx, eax
mov eax, dword [esi + 0x65b8]
push esi
mov dword [esp + 0x18], eax
call fcn.100d81e0
push esi
mov word [esi + 0x6244], ax
call fcn.100d81e0
mov edi, dword [esi]
add esp, 0xc
push 0
push esi
add edi, 8
call fcn.100d8280
mov ecx, dword [esi + 4]
mov edx, dword [edi]
add esp, 4
add eax, ebx
push eax
push ecx
call edx
push ebx
push esi
call fcn.100ed090
mov eax, dword [esp + 0x24]
mov cx, word [esp + 0x34]
add esp, 0x14
mov dword [esi + 0x65cc], 0xffff
mov dword [esi + 0x65b8], eax
mov word [esi + 0x6244], cx
jmp case.0x100ed5d4.307
mov edi, 4
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edx, dword [esi + 0x65e8]
shl edx, 8
add eax, edx
add esp, 4
sub edi, 1
mov dword [esi + 0x65e8], eax
jne 0x100ee2a5
jmp case.0x100ed5d4.307
cmp edi, 0xfd04
ja 0x100ee6b8
je 0x100ee670
lea eax, [edi - 0xc616]
cmp eax, 0x79
ja case.0x100ed5d4.307
movzx eax, byte [eax + 0x100eea18]
jmp dword [eax*4 + 0x100ee9d8]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [esi + 0x659c], eax
mov dword [esi + 0x65a8], ecx
jmp case.0x100ed5d4.307
mov eax, dword [esp + 0x1c]
cmp eax, 4
jbe 0x100ee332
mov eax, 4
mov dword [esp + 0x1c], eax
mov edx, dword [esi]
mov ecx, dword [esi + 4]
push eax
mov dword [esi + 0x661c], eax
mov edx, dword [edx]
push 1
lea eax, [esp + 0x2c]
push eax
push ecx
call edx
mov ebx, dword [esp + 0x48]
add esp, 0x10
jmp 0x100ee75d
push esi
call fcn.100d81e0
add esp, 4
cmp ax, 2
jne case.0x100ed5d4.307
mov eax, 1
mov word [esi + 0x660e], ax
mov dword [esi + 0x6580], 0x49494949
jmp case.0x100ed5d4.307
mov ecx, dword [esp + 0x1c]
push ecx
push esi
call fcn.100e9290
add esp, 8
jmp case.0x100ed5d4.307
fldz
mov edi, dword [esp + 0x1c]
fst qword [esp + 0x10]
test edi, edi
jle 0x100ee3cd
mov ebx, dword [esp + 0x18]
lea esp, [esp]
push ebx
fstp st(0)
push esi
call fcn.100d8300
fadd qword [esp + 0x18]
add esp, 8
sub edi, 1
fst qword [esp + 0x10]
jne 0x100ee3b0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
test edi, edi
jge 0x100ee3df
fadd qword [0x1026bd98]
fdivp st(1)
fadd qword [0x1026bd40]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov edx, dword [esp + 0x10]
add dword [esi + 0x65c8], edx
fldcw word [esp + 0x20]
jmp case.0x100ed5d4.307
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d82c0
add esp, 8
mov dword [esi + 0x65cc], eax
jmp case.0x100ed5d4.307
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100d8300
fstp qword [esi + 0x6628]
push edi
push esi
call fcn.100d8300
fdivr qword [esi + 0x6628]
add esp, 0x10
fstp qword [esi + 0x6628]
jmp case.0x100ed5d4.307
cmp dword [esi + 0x661c], 0
mov dword [esp + 0x10], 0
jle 0x100ee49f
lea edi, [esp + 0x180]
mov ebx, 3
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100d8300
fstp qword [edi]
add esp, 8
add edi, 8
sub ebx, 1
jne 0x100ee476
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [esi + 0x661c]
mov dword [esp + 0x10], eax
jl 0x100ee471
mov dword [esp + 0x3c], 1
jmp case.0x100ed5d4.307
cmp dword [esi + 0x661c], 0
mov dword [esp + 0x20], 0
jle case.0x100ee2f6.50727
lea edx, [esp + 0x100]
mov dword [esp + 0x10], edx
jmp 0x100ee4d0
xor edi, edi
cmp dword [esi + 0x661c], edi
jle 0x100ee4fc
mov ebx, dword [esp + 0x10]
mov edi, edi
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100d8300
fstp qword [ebx]
inc edi
add esp, 8
add ebx, 8
cmp edi, dword [esi + 0x661c]
jl 0x100ee4e0
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], 0x20
inc eax
cmp eax, dword [esi + 0x661c]
mov dword [esp + 0x20], eax
jl 0x100ee4d0
xor edi, edi
cmp dword [esi + 0x661c], edi
jle case.0x100ed5d4.307
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.100d8300
fstp qword [esp + edi*8 + 0xa8]
inc edi
add esp, 8
cmp edi, dword [esi + 0x661c]
jl 0x100ee524
jmp case.0x100ed5d4.307
xor edi, edi
cmp dword [esi + 0x661c], edi
jle case.0x100ed5d4.307
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.100d8300
fstp qword [esp + edi*8 + 0x88]
inc edi
add esp, 8
cmp edi, dword [esi + 0x661c]
jl 0x100ee555
jmp case.0x100ed5d4.307
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100d8300
fstp qword [esp + 0x70]
push edi
push esi
call fcn.100d8300
fst qword [esp + 0x80]
fld1
add esp, 0x10
fsub qword [esp + 0x68]
lea ecx, [esp + 0x68]
mov eax, 0x101cd058
fsubrp st(1)
fstp qword [esp + 0x78]
lea esp, [esp]
fld dword [eax]
add eax, 4
fdivr qword [ecx]
add ecx, 8
cmp eax, 0x101cd064
fstp qword [ecx - 8]
jl 0x100ee5b0
jmp case.0x100ed5d4.307
cmp dword [esi + 0x65e8], 0
jne case.0x100ed5d4.307
push esi
call fcn.100d8280
mov ebx, dword [ebp + 0xc]
mov edi, eax
add edi, ebx
push edi
push esi
call fcn.100ef090
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 0
push edi
push edx
call eax
push ebx
push esi
call fcn.100ed090
add esp, 0x20
jmp case.0x100ed5d4.307
push 3
lea ecx, [esi + 0xe6b6]
push ecx
push esi
call fcn.100d8520
add esp, 0xc
jmp case.0x100ed5d4.307
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100d82c0
push edi
push esi
mov word [esi + 0x6604], ax
call fcn.100d82c0
push edi
push esi
mov word [esi + 0x6606], ax
call fcn.100d82c0
sub ax, word [esi + 0x6604]
push edi
push esi
mov word [esi + 0x6600], ax
call fcn.100d82c0
add esp, 0x20
sub ax, word [esi + 0x6606]
mov word [esi + 0x6602], ax
jmp case.0x100ed5d4.307
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x10
push eax
call ecx
push esi
call fcn.100d8280
mov edx, dword [esi]
mov dword [esi + 0x6590], eax
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0x1c
push eax
call ecx
push esi
call fcn.100d8280
add esp, 0x20
add dword [esi + 0x6590], eax
mov dword [esi + 0x2e74c], 0x100ddbd0
jmp case.0x100ed5d4.307
cmp edi, 0xfd09
jne case.0x100ed5d4.307
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], ebx
cmp ebx, 0x10
jbe 0x100ee6da
mov ebx, 0x10
mov dword [esp + 0x38], ebx
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push ebx
push 1
lea eax, [esp + 0x1e8]
push eax
push ecx
call edx
xor edi, edi
add esp, 0x10
xor edx, edx
cmp ebx, edi
mov dword [esi + 0x661c], edi
jle 0x100ee75d
mov dword [esp + 0x10], edx
mov cl, byte [esp + edx + 0x1e0]
mov ebx, dword [esp + 0x38]
mov eax, 1
shl eax, cl
mov ecx, edi
and ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add dword [esp + 0x10], ecx
inc edx
or edi, eax
cmp edx, ebx
jl 0x100ee704
mov edx, dword [esp + 0x10]
mov dword [esi + 0x661c], edx
cmp edi, 0x38
jne 0x100ee750
mov ax, word [0x101d0c88]
mov cl, byte [0x101d0c8a]
mov word [esp + 0x24], ax
mov byte [esp + 0x26], cl
jmp 0x100ee75d
cmp edi, 0x3a
jne 0x100ee75d
mov dword [esp + 0x24], 0x1040305
xor eax, eax
cmp dword [esi + 0x661c], eax
jle 0x100ee781
mov ecx, dword [esi + 0x661c]
lea ecx, [ecx]
movzx edx, byte [esp + eax + 0x24]
mov byte [esp + edx + 0x250], al
inc eax
cmp eax, ecx
jl 0x100ee770
mov byte [esi + eax + 0x6250], 0
mov edi, dword [esi + 0x6580]
mov ecx, 0x10
dec ecx
xor edx, edx
mov eax, ecx
div ebx
movzx eax, byte [esp + edx + 0x1e0]
movzx edx, byte [esp + eax + 0x250]
lea eax, [edi*4]
or edx, eax
mov edi, edx
test ecx, ecx
jne 0x100ee794
mov dword [esi + 0x6580], edi
jmp case.0x100ed5d4.307