Function at 0x4193dd
Capabilities:
Encode data using xor
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x35c
mov eax, dword [0x4596ac]
xor eax, esp
mov dword [esp + 0x358], eax
fld1
mov eax, dword [0x4ac410]
fst qword [esp + 0xa4]
push ebx
fst qword [esp + 0xb0]
push esi
fst qword [esp + 0xbc]
push edi
fst qword [esp + 0xc8]
xor edi, edi
fldz
mov dword [esp + 0x4c], 0x10
fst qword [esp + 0x90]
mov dword [esp + 0x44], edi
fst qword [esp + 0x98]
mov dword [esp + 0x50], edi
fst qword [esp + 0xa0]
mov byte [esp + 0x34], 0
fstp qword [esp + 0xa8]
mov byte [esp + 0x35], 1
mov byte [esp + 0x36], 2
mov byte [esp + 0x37], 3
mov dword [esp + 0x60], edi
fst qword [esp + 0x78]
mov dword [esp + 0x64], edi
fst qword [esp + 0x80]
mov dword [esp + 0x68], edi
fstp qword [esp + 0x88]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0xfff
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
cmp eax, 0xa
jb 0x418ccd
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x358]
xor ecx, esp
call fcn.004334ab
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x1c], eax
inc eax
mov dword [0x4ac410], eax
xor esi, esi
lea ecx, [esp + 0x130]
xor eax, eax
xor edx, edx
cmp eax, esi
sete dl
inc eax
add ecx, 8
cmp eax, 4
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fstp qword [ecx - 8]
jl 0x418ce2
inc esi
cmp esi, 4
jl 0x418ce0
mov eax, dword [0x486344]
push eax
push 2
lea ecx, [esp + 0x30]
push 1
push ecx
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00435763
movzx ax, byte [esp + 0x39]
mov edx, 0x4949
add esp, 0x10
cmp word [0x465c48], dx
jne 0x418d4a
movzx cx, byte [esp + 0x28]
shl ax, 8
or ax, cx
movzx eax, ax
jmp 0x418d5a
movzx dx, byte [esp + 0x28]
shl dx, 8
or dx, ax
movzx eax, dx
movzx eax, ax
mov dword [esp + 0x30], eax
cmp eax, 0x200
ja 0x418cb3
cmp eax, edi
je 0x41a5c0
mov ecx, dword [0x486344]
dec dword [esp + 0x30]
push ecx
push 2
lea edx, [esp + 0x2c]
push 1
push edx
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
call fcn.00435763
movzx cx, byte [esp + 0x35]
mov eax, 0x4949
add esp, 0x10
cmp word [0x465c48], ax
jne 0x418dc0
movzx dx, byte [esp + 0x24]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x418dd0
movzx ax, byte [esp + 0x24]
shl ax, 8
or ax, cx
movzx eax, ax
mov edx, dword [0x486344]
push edx
push 2
movzx esi, ax
lea eax, [esp + 0x28]
push 1
push eax
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
call fcn.00435763
movzx dx, byte [esp + 0x31]
mov ecx, 0x4949
add esp, 0x10
cmp word [0x465c48], cx
jne 0x418e1b
movzx ax, byte [esp + 0x20]
shl dx, 8
or dx, ax
movzx eax, dx
jmp 0x418e2b
movzx cx, byte [esp + 0x20]
shl cx, 8
or cx, dx
movzx eax, cx
movzx ebx, ax
mov eax, dword [0x486344]
push eax
push 4
lea ecx, [esp + 0x34]
push 1
push ecx
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
call fcn.00435763
mov edx, 0x4949
add esp, 0x10
cmp word [0x465c48], dx
jne 0x418e7d
movzx edi, byte [esp + 0x2f]
movzx eax, byte [esp + 0x2e]
movzx ecx, byte [esp + 0x2d]
movzx edx, byte [esp + 0x2c]
jmp 0x418e91
movzx edi, byte [esp + 0x2c]
movzx eax, byte [esp + 0x2d]
movzx ecx, byte [esp + 0x2e]
movzx edx, byte [esp + 0x2f]
shl edi, 8
or edi, eax
mov eax, dword [0x486344]
shl edi, 8
or edi, ecx
shl edi, 8
or edi, edx
push eax
mov dword [esp + 0x14], edi
call fcn.00435c4a
add eax, 4
add esp, 4
cmp ebx, 0xe
mov dword [esp + 0x48], eax
sbb eax, eax
and eax, ebx
movsx ecx, byte [eax + str.11124811248488]
sub ecx, 0x30
imul ecx, edi
cmp ecx, 4
jbe 0x418eec
push 0
call fcn.00401240
add eax, dword [ebp + 8]
mov edx, dword [0x486344]
push eax
push edx
call fcn.00435f77
add esp, 0xc
cmp esi, 0x827d
ja 0x4196ec
je 0x4196d1
cmp esi, 0x26
ja 0x418f9a
cmp esi, 0x24
jae 0x418f7e
lea eax, [esi - 2]
cmp eax, 0x15
ja case.0x419eef.50713
movzx eax, byte [eax + 0x41a7b8]
jmp dword [eax*4 + 0x41a7a0]
cmp ebx, 3
jne case.0x419eef.50713
cmp edi, 1
jne case.0x419eef.50713
call fcn.00401190
movzx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x451978]
fstp dword [esi*8 + 0x466088]
jmp case.0x419eef.50713
cmp ebx, 3
jne case.0x419eef.50713
call fcn.00401190
movzx edx, ax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [0x4ac40c]
jmp case.0x419eef.50713
call fcn.00401190
movzx eax, ax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esi*4 + 0x466080]
jmp case.0x419eef.50713
cmp esi, 0x131
ja 0x419394
je case.0x418f1f.11
add esi, 0xffffffd9
cmp esi, 0xfc
ja case.0x419eef.50713
movzx ecx, byte [esi + 0x41a814]
jmp dword [ecx*4 + 0x41a7d0]
cmp edi, 0x32
jb case.0x419eef.50713
fldz
fcomp dword [0x466110]
fnstsw ax
test ah, 0x44
jp case.0x419eef.50713
mov edx, dword [0x486344]
push 1
push 0xc
push edx
call fcn.00435f77
add esp, 0xc
mov esi, 0x466110
lea ecx, [ecx]
call fcn.00401190
movzx eax, ax
mov dword [esp + 0x10], eax
add esi, 4
cmp esi, 0x46611c
fild dword [esp + 0x10]
fstp dword [esi - 4]
jl 0x419000
jmp case.0x419eef.50713
cmp ebx, 7
jne case.0x419eef.50713
mov ecx, dword [0x486344]
push ecx
call fcn.004361ad
add esp, 4
cmp eax, 0xff
jne case.0x419eef.50713
mov edx, dword [0x486344]
push edx
call fcn.004361ad
add esp, 4
cmp eax, 0xd8
jne case.0x419eef.50713
mov eax, dword [0x486344]
push eax
call fcn.00435c4a
add esp, 4
sub eax, 2
mov dword [0x465c44], eax
mov dword [0x465c5c], edi
jmp case.0x419eef.50713
cmp ebx, 3
jne 0x4190a1
call fcn.00401190
mov ecx, dword [esp + 0x1c]
movzx eax, ax
lea ecx, [ecx + ecx*8]
mov dword [ecx*4 + 0x486180], eax
jmp case.0x419eef.50713
call fcn.00401240
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*8]
mov dword [ecx*4 + 0x486180], eax
jmp case.0x419eef.50713
cmp ebx, 3
jne 0x4190d9
call fcn.00401190
mov ecx, dword [esp + 0x1c]
movzx eax, ax
lea edx, [ecx + ecx*8]
mov dword [edx*4 + 0x486184], eax
jmp case.0x419eef.50713
call fcn.00401240
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx*8]
mov dword [edx*4 + 0x486184], eax
jmp case.0x419eef.50713
mov esi, dword [esp + 0x1c]
lea esi, [esi + esi*8]
add esi, esi
add esi, esi
and edi, 7
mov dword [esi + 0x48619c], edi
call fcn.00401190
movzx eax, ax
mov dword [esi + 0x486188], eax
jmp case.0x419eef.50713
call fcn.00401190
movzx ecx, ax
mov eax, dword [esp + 0x1c]
lea edx, [eax + eax*8]
mov dword [edx*4 + 0x48618c], ecx
jmp case.0x419eef.50713
call fcn.00401190
movzx ecx, ax
mov eax, dword [esp + 0x1c]
lea edx, [eax + eax*8]
mov dword [edx*4 + 0x486190], ecx
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
push 1
push 0x200
push 0x465d40
call fcn.00435763
add esp, 0x10
jmp case.0x419eef.50713
mov ecx, dword [0x486344]
push ecx
push 0x40
push 0x4ac3c0
call fcn.00434fa4
add esp, 0xc
jmp case.0x419eef.50713
mov edx, dword [0x486344]
push edx
push 0x40
push 0x466060
call fcn.00434fa4
add esp, 0xc
jmp case.0x419eef.50713
cmp ebx, 4
jne case.0x419eef.50713
mov dword [0x4862f0], 0x4081f0
mov dword [0x4862fc], 0x2008
call fcn.00401240
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
lea edi, [edi + edi*8]
add edi, edi
add edi, edi
add eax, edx
cmp dword [edi + 0x486188], 0
mov dword [edi + 0x486194], eax
jne case.0x419eef.50713
push 0
push eax
mov eax, dword [0x486344]
push eax
call fcn.00435f77
add esp, 0xc
push 1
lea esi, [esp + 0xd4]
call fcn.00402fe0
add esp, 4
test eax, eax
je case.0x419eef.50713
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
xor ecx, ecx
cmp eax, 2
sete cl
shl edx, cl
mov ecx, dword [esp + 0xd4]
mov dword [edi + 0x48618c], 6
mov dword [edi + 0x486184], ecx
mov dword [edi + 0x486180], edx
mov edx, dword [esp + 0xd0]
mov dword [edi + 0x486188], edx
mov dword [edi + 0x48619c], eax
jmp case.0x419eef.50713
call fcn.00401190
and eax, 7
movsx ecx, byte [eax + str.50132467]
mov eax, dword [esp + 0x1c]
sub ecx, 0x30
lea edx, [eax + eax*8]
mov dword [edx*4 + 0x486198], ecx
jmp case.0x419eef.50713
push ebx
call fcn.004012c0
mov ecx, eax
mov eax, dword [esp + 0x20]
add esp, 4
and ecx, 7
lea edx, [eax + eax*8]
mov dword [edx*4 + 0x48619c], ecx
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
lea ecx, [esp + 0x224]
push 0x40
push ecx
call fcn.00434fa4
add esp, 0xc
push 5
lea edx, [esp + 0x224]
push str.Adobe
push edx
call fcn.004344d5
add esp, 0xc
test eax, eax
je 0x419385
push 5
lea eax, [esp + 0x224]
push str.dcraw
push eax
call fcn.004344d5
add esp, 0xc
test eax, eax
je 0x419385
push 5
lea ecx, [esp + 0x224]
push str.UFRaw
push ecx
call fcn.004344d5
add esp, 0xc
test eax, eax
je 0x419385
push 6
lea edx, [esp + 0x224]
push str.Bibble
push edx
call fcn.004344d5
add esp, 0xc
test eax, eax
je 0x419385
push 0xa
lea eax, [esp + 0x224]
push str.Nikon_Scan
push eax
call fcn.004344d5
add esp, 0xc
test eax, eax
je 0x419385
mov ecx, str.Digital_Photo_Professional
lea eax, [esp + 0x220]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419378
test dl, dl
je 0x419374
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419378
add eax, 2
add ecx, 2
test dl, dl
jne 0x419358
xor eax, eax
jmp 0x41937d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x419eef.50713
mov dword [0x4ac3a0], 0
jmp case.0x419eef.50713
cmp esi, 0x202
ja 0x41957a
je case.0x418fc2.279
add esi, 0xfffffece
cmp esi, 0xcf
ja case.0x419eef.50713
movzx ecx, byte [esi + 0x41a938]
jmp dword [ecx*4 + 0x41a914]
push 0
call fcn.004179a0
add esp, 4
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
push 1
push 0x40
push 0x466000
call fcn.00435763
add esp, 0x10
jmp case.0x419eef.50713
push ebx
call fcn.004012c0
add esp, 4
mov dword [0x4ac49c], eax
jmp case.0x419eef.50713
push ebx
call fcn.004012c0
add esp, 4
mov dword [0x465d24], eax
jmp case.0x419eef.50713
cmp edi, 1
jbe 0x41942d
mov ecx, dword [0x486344]
push ecx
call fcn.00435c4a
add esp, 4
jmp 0x419432
call fcn.00401240
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx*8]
mov dword [edx*4 + 0x486194], eax
cmp edi, 4
jne case.0x419eef.50713
mov dword [0x4862f0], 0x4076c0
mov dword [0x4ac3a0], 5
jmp case.0x419eef.50713
mov ecx, 0x45b1f8
mov eax, 0x466060
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419490
test dl, dl
je 0x41948c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419490
add eax, 2
add ecx, 2
test dl, dl
jne 0x419470
xor eax, eax
jmp 0x419495
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4194cd
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*8]
cmp dword [eax*4 + 0x486180], 0xf20
jne 0x4194cd
mov dword [0x4862f0], 0x40b540
call fcn.00401240
add eax, dword [ebp + 8]
inc dword [esp + 0x1c]
mov dword [0x465d28], eax
jmp case.0x419eef.50713
test edi, edi
je case.0x419eef.50713
mov ebx, dword [esp + 0x10]
lea esp, [esp]
mov ecx, dword [0x486344]
push ecx
dec ebx
call fcn.00435c4a
add esp, 4
push 0
mov esi, eax
call fcn.00401240
mov edi, dword [ebp + 8]
mov edx, dword [0x486344]
add eax, edi
push eax
push edx
call fcn.00435f77
add esp, 0xc
push edi
call fcn.00418bf0
add esp, 4
test eax, eax
jne case.0x419eef.50713
push eax
mov eax, dword [0x486344]
add esi, 4
push esi
push eax
call fcn.00435f77
add esp, 0xc
test ebx, ebx
jne 0x4194e0
jmp case.0x419eef.50713
mov ecx, dword [str.Sarnoff]
mov edx, dword [0x45b208]
mov dword [0x4ac3c0], ecx
mov dword [0x4ac3c4], edx
mov dword [0x466044], 0xfff
jmp case.0x419eef.50713
call fcn.00401240
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*8]
mov dword [ecx*4 + 0x4861a0], eax
jmp case.0x419eef.50713
cmp esi, 0x7221
ja 0x419631
je 0x419623
sub esi, 0x7010
je 0x4195c1
sub esi, 0x1f0
je 0x4195b3
sub esi, 1
jne case.0x419eef.50713
call fcn.00401240
mov dword [esp + 0x5c], eax
jmp case.0x419eef.50713
call fcn.00401240
mov dword [esp + 0x54], eax
jmp case.0x419eef.50713
xor esi, esi
call fcn.00401190
inc esi
shr eax, 2
and eax, 0xfff
cmp esi, 4
mov dword [esp + esi*4 + 0x60], eax
jl 0x4195c3
xor ecx, ecx
lea esp, [esp]
mov eax, dword [esp + ecx*4 + 0x60]
inc eax
cmp eax, dword [esp + ecx*4 + 0x64]
ja 0x419618
mov esi, dword [esp + ecx*4 + 0x64]
mov edx, 1
shl edx, cl
jmp 0x419600
mov di, word [eax*2 + 0x46613e]
add di, dx
mov word [eax*2 + 0x466140], di
inc eax
cmp eax, esi
jbe 0x419600
inc ecx
cmp ecx, 5
jl 0x4195e0
jmp case.0x419eef.50713
call fcn.00401240
mov dword [esp + 0x58], eax
jmp case.0x419eef.50713
sub esi, 0x7250
je 0x4196ac
sub esi, 0xb3
je 0x419678
sub esi, 0x10
jne case.0x419eef.50713
lea ebx, [ebx]
call fcn.00401190
movzx edx, ax
mov eax, esi
sar eax, 1
mov dword [esp + 0x10], edx
xor eax, esi
inc esi
cmp esi, 4
fild dword [esp + 0x10]
fstp dword [eax*4 + 0x466110]
jl 0x419650
jmp case.0x419eef.50713
xor esi, esi
lea ebx, [ebx]
call fcn.00401190
xor edx, edx
cmp esi, 2
setl dl
movzx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
xor edx, esi
inc esi
fstp dword [edx*4 + 0x466110]
cmp esi, 4
jl 0x419680
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
call fcn.00435c4a
add esp, 4
push eax
call fcn.0041b190
add esp, 4
xor ecx, ecx
mov word [0x4ac484], cx
jmp case.0x419eef.50713
mov edx, dword [0x486344]
push edx
push 0x40
push 0x4ac440
call fcn.00434fa4
add esp, 0xc
jmp case.0x419eef.50713
cmp esi, 0xc51a
ja 0x419de8
je 0x419da8
cmp esi, 0x8773
ja 0x41996f
je case.0x419eef.50831
cmp esi, 0x85ff
ja 0x4197e4
je 0x41991d
add esi, 0xffff7d72
cmp esi, 0xf
ja case.0x419eef.50713
movzx eax, byte [esi + 0x41aa1c]
jmp dword [eax*4 + 0x41aa08]
push 0
call fcn.00401240
mov esi, dword [ebp + 8]
mov ecx, dword [0x486344]
add eax, esi
push eax
push ecx
call fcn.00435f77
add esp, 0xc
push esi
call fcn.00418720
add esp, 4
jmp case.0x419eef.50713
lea eax, [ebx - 3]
cmp eax, 9
ja 0x419785
push eax
call fcn.004012e0
fstp dword [0x465f58]
add esp, 4
jmp case.0x419eef.50713
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add esp, 4
fstp dword [0x465f58]
jmp case.0x419eef.50713
lea eax, [ebx - 3]
cmp eax, 9
ja 0x4197c3
push eax
call fcn.004012e0
fstp dword [0x486304]
add esp, 4
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add esp, 4
fstp dword [0x486304]
jmp case.0x419eef.50713
cmp esi, 0x8606
ja 0x41993a
je 0x419906
sub esi, 0x8602
je 0x4198cf
sub esi, 1
jne case.0x419eef.50713
mov ecx, dword [0x486344]
push ecx
push 7
lea edx, [esp + 0x228]
push 1
push edx
call fcn.00435763
push 6
lea eax, [esp + 0x234]
push str.MATRIX
push eax
call fcn.004344d5
add esp, 0x1c
test eax, eax
jne case.0x419eef.50713
xor ebx, ebx
mov dword [0x465c58], 4
mov dword [0x465f54], ebx
mov edi, 0x4ac360
xor esi, esi
jmp 0x419860
mov eax, dword [0x486344]
mov ecx, esi
xor ecx, 1
add ecx, ebx
lea edx, [ecx*4 + 0x4ac360]
push edx
push 0x45b220
push eax
call fcn.004335c4
inc esi
add esp, 0xc
cmp esi, 4
jl 0x419860
cmp dword [0x464aa4], 0
je 0x4198bc
fldz
mov eax, edi
mov ecx, 4
fadd dword [eax]
add eax, 4
sub ecx, 1
jne 0x41989a
mov eax, edi
mov ecx, 4
fld dword [eax]
add eax, 4
sub ecx, 1
fdiv st(1)
fstp dword [eax - 4]
jne 0x4198ab
fstp st(0)
add edi, 0x10
add ebx, 4
cmp edi, 0x4ac390
jl 0x419859
jmp case.0x419eef.50713
xor esi, esi
call fcn.00401190
movzx ecx, ax
mov dword [esp + 0x10], ecx
mov edx, esi
xor edx, 1
fild dword [esp + 0x10]
inc esi
cmp esi, 4
fdivr qword [0x4519c0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx*4 + 0x466110]
jl 0x4198d1
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
call fcn.00435c4a
add esp, 4
push eax
call fcn.00418120
add esp, 4
mov ecx, dword [0x45b224]
mov dl, byte [0x45b228]
mov dword [0x4ac3c0], ecx
mov byte [0x4ac3c4], dl
jmp case.0x419eef.50713
cmp esi, 0x8769
jne case.0x419eef.50713
push 0
call fcn.00401240
mov esi, dword [ebp + 8]
add eax, esi
push eax
mov eax, dword [0x486344]
push eax
call fcn.00435f77
add esp, 0xc
push esi
call fcn.00417aa0
add esp, 4
jmp case.0x419eef.50713
cmp esi, 0x9218
ja 0x419ac2
je 0x419a39
cmp esi, 0x920a
ja 0x419a1a
je 0x4199dc
cmp esi, 0x8825
je 0x4199b2
cmp esi, 0x9102
jne case.0x419eef.50713
call fcn.00401240
mov dword [0x465f44], eax
jmp case.0x419eef.50713
push 0
call fcn.00401240
mov esi, dword [ebp + 8]
mov ecx, dword [0x486344]
add eax, esi
push eax
push ecx
call fcn.00435f77
add esp, 0xc
push esi
call fcn.00417e80
add esp, 4
jmp case.0x419eef.50713
lea eax, [ebx - 3]
cmp eax, 9
ja 0x4199f8
push eax
call fcn.004012e0
fstp dword [0x466124]
add esp, 4
jmp case.0x419eef.50713
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add esp, 4
fstp dword [0x466124]
jmp case.0x419eef.50713
cmp esi, 0x9211
jne case.0x419eef.50713
push ebx
call fcn.004012c0
add esp, 4
mov dword [0x4660a4], eax
jmp case.0x419eef.50713
lea eax, [ebx - 3]
mov dword [0x465f54], 0
mov dword [esp + 0x10], eax
mov ebx, 0x4ac360
jmp 0x419a55
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x419a64
push eax
call fcn.004012e0
fstp st(0)
jmp 0x419a6f
mov eax, dword [0x486344]
push eax
call fcn.004361ad
add esp, 4
mov esi, ebx
mov edi, 3
lea esp, [esp]
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x419a91
push eax
call fcn.004012e0
jmp 0x419aa5
mov ecx, dword [0x486344]
push ecx
call fcn.004361ad
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fstp dword [esi]
add esp, 4
add esi, 4
sub edi, 1
jne 0x419a80
add ebx, 0x10
cmp ebx, 0x4ac390
jl 0x419a51
jmp case.0x419eef.50713
cmp esi, 0xb4c7
ja 0x419d04
je 0x419b1d
cmp esi, 0xb4c3
jne case.0x419eef.50713
mov edx, dword [str.Imacon]
mov ax, word [0x45b230]
mov cl, byte [0x45b232]
mov dword [0x4ac3c0], edx
mov edx, dword [0x486344]
push edx
mov word [0x4ac3c4], ax
mov byte [0x4ac3c6], cl
call fcn.00435c4a
add esp, 4
mov dword [0x465d28], eax
mov dword [esp + 0x50], edi
jmp case.0x419eef.50713
cmp dword [esp + 0x50], 0
je case.0x419eef.50713
mov eax, dword [0x486344]
push 1
push 0x4e
push eax
call fcn.00435f77
add esp, 0xc
call fcn.00401240
mov word [0x4ac484], ax
call fcn.00401240
mov word [0x465d20], ax
call fcn.00401240
and eax, 7
mov word [0x4660a0], ax
call fcn.00401240
mov cx, word [0x4ac484]
and eax, 7
sub cx, ax
sub cx, word [0x4660a0]
mov word [0x466040], cx
call fcn.00401240
and eax, 7
mov word [0x4ac498], ax
call fcn.00401240
mov dx, word [0x465d20]
and eax, 7
sub dx, ax
sub dx, word [0x4ac498]
mov eax, 0x1c5e
mov word [0x4ac486], dx
cmp word [0x4ac484], ax
jne 0x419bdd
mov ecx, 0x1544
mov edx, 0x1c4c
mov eax, 7
mov word [0x4ac486], cx
mov word [0x466040], dx
mov word [0x4660a0], ax
mov ecx, dword [0x486344]
push 1
push 0x34
push ecx
call fcn.00435f77
add esp, 0xc
mov esi, 0x466110
push 8
call fcn.004012e0
fstp dword [esi]
add esi, 4
add esp, 4
cmp esi, 0x46611c
jl 0x419bf5
mov edx, dword [0x486344]
push 1
push 0x72
push edx
call fcn.00435f77
add esp, 0xc
call fcn.00401190
mov di, word [0x4ac486]
mov si, word [0x466040]
movzx ecx, ax
movzx eax, di
movzx edx, si
imul eax, edx
shr ecx, 7
imul ecx, ecx, 0x5a
lea eax, [eax + eax*2]
add eax, eax
mov dword [0x486340], ecx
cmp eax, dword [esp + 0x50]
jne 0x419c98
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xb4
sub ecx, eax
cmp ecx, 0x5a
jne 0x419c8c
xor si, di
xor di, si
xor si, di
mov word [0x4ac486], di
mov word [0x466040], si
xor eax, eax
mov dword [0x486340], eax
mov dword [0x466120], eax
movzx edx, si
movzx ecx, di
imul ecx, edx
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.Ixpress__d_Mp
push 0x466060
call fcn.004339dc
add esp, 0xc
cmp dword [0x466120], 0
mov dword [0x4862f0], 0x407970
je 0x419cf5
test byte [0x4660a0], 1
je 0x419ceb
mov dword [0x466120], 0x61616161
mov dword [0x4862f0], 0x407da0
mov dword [0x466044], 0xffff
jmp case.0x419eef.50713
cmp esi, 0xc516
jb case.0x419eef.50713
cmp esi, 0xc517
ja case.0x419eef.50713
push edi
call fcn.0043493c
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x419eef.50713
mov ecx, dword [0x486344]
push ecx
push edi
push 1
push ebx
call fcn.00435763
lea esi, [ebx - 1]
add esp, 0x10
test esi, esi
je 0x419d9a
add edi, ebx
jmp 0x419d50
cmp esi, edi
jae 0x419d9a
push 8
inc esi
push str.Neutral
push esi
call fcn.004344d5
add esp, 0xc
test eax, eax
jne 0x419d89
push 0x466118
push 0x466114
push 0x466110
lea edx, [esi + 8]
push str._f__f__f
push edx
call fcn.00434141
add esp, 0x14
push 0xa
push esi
call fcn.00434c60
mov esi, eax
add esp, 8
test esi, esi
jne 0x419d50
push ebx
call fcn.0043481f
add esp, 4
jmp case.0x419eef.50713
cmp byte [0x4ac3c0], 0
jne case.0x419eef.50713
mov eax, dword [0x45b25c]
mov ecx, dword [0x45b260]
mov dx, word [0x45b264]
mov dword [0x4ac3c0], eax
mov al, byte [0x45b266]
mov dword [0x4ac3c4], ecx
mov word [0x4ac3c8], dx
mov byte [0x4ac3ca], al
jmp case.0x419eef.50713
cmp esi, 0xc612
ja 0x419ec7
je 0x419e72
cmp esi, 0xc51b
jne case.0x419eef.50713
mov ecx, dword [0x486344]
movsx edi, word [0x465c48]
push ecx
call fcn.00435c4a
mov ebx, dword [0x4ac410]
add esp, 4
mov esi, eax
call fcn.00401190
mov word [0x465c48], ax
call fcn.00401190
push 0
call fcn.00401240
mov edx, dword [0x486344]
add eax, esi
push eax
push edx
call fcn.00435f77
add esp, 0xc
push esi
call fcn.00418bf0
add esp, 4
mov dword [0x466044], 0xffff
mov dword [0x4ac410], ebx
mov word [0x465c48], di
jmp case.0x419eef.50713
mov esi, 4
jmp 0x419e80
mov eax, dword [0x486344]
push eax
call fcn.004361ad
mov ecx, dword [0x465f60]
shl ecx, 8
add eax, ecx
add esp, 4
sub esi, 1
mov dword [0x465f60], eax
jne 0x419e80
cmp byte [0x4ac3c0], 0
jne 0x419eb8
mov edx, dword [0x45b268]
mov dword [0x4ac3c0], edx
mov dword [0x4ac3a0], 1
jmp case.0x419eef.50713
cmp esi, 0xfd04
ja 0x41a3b0
je 0x41a35e
add esi, 0xffff39ea
cmp esi, 0x79
ja case.0x419eef.50713
movzx eax, byte [esi + 0x41aa6c]
jmp dword [eax*4 + 0x41aa2c]
mov ecx, dword [0x486344]
push ecx
call fcn.00435c4a
add esp, 4
mov dword [0x4ac39c], eax
mov dword [0x4660b4], edi
jmp case.0x419eef.50713
mov eax, 4
cmp edi, 4
ja 0x419f23
mov eax, dword [esp + 0x10]
mov edx, dword [0x486344]
push edx
push eax
mov dword [0x465c58], eax
lea eax, [esp + 0x3c]
push 1
push eax
call fcn.00435763
mov edi, dword [0x465c58]
add esp, 0x10
jmp 0x41a481
call fcn.00401190
cmp ax, 2
jne case.0x419eef.50713
mov ecx, 1
mov word [0x465f64], cx
mov dword [0x466120], 0x49494949
jmp case.0x419eef.50713
mov eax, edi
call fcn.00418660
jmp case.0x419eef.50713
fldz
fst qword [esp + 0x38]
test edi, edi
jbe 0x419fc3
lea esi, [ebx - 3]
mov ebx, edi
nop
fstp st(0)
cmp esi, 9
ja 0x419f9f
push esi
call fcn.004012e0
jmp 0x419fb3
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fadd qword [esp + 0x3c]
add esp, 4
sub ebx, 1
fst qword [esp + 0x38]
jne 0x419f90
mov dword [esp + 0x38], edi
fild dword [esp + 0x38]
test edi, edi
jge 0x419fd5
fadd qword [0x451828]
fdivp st(1)
mov eax, dword [0x4862f4]
fadd qword [0x4517d0]
fild dword [0x4862f4]
test eax, eax
jge 0x419ff2
fadd qword [0x451828]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov dword [0x4862f4], ecx
fldcw word [esp + 0x18]
jmp case.0x419eef.50713
push ebx
call fcn.004012c0
add esp, 4
mov dword [0x466044], eax
jmp case.0x419eef.50713
lea esi, [ebx - 3]
cmp esi, 9
ja 0x41a044
push esi
call fcn.004012e0
jmp 0x41a058
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add esp, 4
fstp qword [0x4660a8]
cmp esi, 9
ja 0x41a080
push esi
call fcn.004012e0
fdivr qword [0x4660a8]
add esp, 4
fstp qword [0x4660a8]
jmp case.0x419eef.50713
mov eax, dword [0x486344]
push eax
call fcn.004361ad
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
add esp, 4
fdivr qword [0x4660a8]
fstp qword [0x4660a8]
jmp case.0x419eef.50713
cmp dword [0x465c58], 0
mov dword [esp + 0x18], 0
jle 0x41a106
lea edi, [ebx - 3]
lea esi, [esp + 0x1b0]
mov ebx, 3
cmp edi, 9
ja 0x41a0d4
push edi
call fcn.004012e0
jmp 0x41a0e8
mov ecx, dword [0x486344]
push ecx
call fcn.004361ad
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fstp qword [esi]
add esp, 4
add esi, 8
sub ebx, 1
jne 0x41a0c7
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [0x465c58]
mov dword [esp + 0x18], eax
jl 0x41a0c2
mov dword [esp + 0x44], 1
jmp case.0x419eef.50713
mov eax, dword [0x465c58]
mov dword [esp + 0x10], 0
test eax, eax
jle 0x41a18d
lea esi, [esp + 0x130]
mov dword [esp + 0x18], esi
xor edi, edi
test eax, eax
jle 0x41a16e
lea eax, [ebx - 3]
cmp eax, 9
ja 0x41a148
lea eax, [ebx - 3]
push eax
call fcn.004012e0
jmp 0x41a15c
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
mov eax, dword [0x465c58]
fstp qword [esi]
inc edi
add esp, 4
add esi, 8
cmp edi, eax
jl 0x41a135
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
inc ecx
add esi, 0x20
cmp ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], esi
jl 0x41a12f
jmp 0x41a18d
mov eax, dword [0x465c58]
xor esi, esi
test eax, eax
jle case.0x419eef.50713
lea edi, [ebx - 3]
lea ebx, [ebx]
cmp edi, 9
ja 0x41a1ad
push edi
call fcn.004012e0
jmp 0x41a1c0
mov eax, dword [0x486344]
push eax
call fcn.004361ad
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fstp qword [esp + esi*8 + 0xb4]
inc esi
add esp, 4
cmp esi, dword [0x465c58]
jl 0x41a1a0
jmp case.0x419eef.50713
xor esi, esi
cmp dword [0x465c58], esi
jle case.0x419eef.50713
lea edi, [ebx - 3]
lea esp, [esp]
cmp edi, 9
ja 0x41a1fd
push edi
call fcn.004012e0
jmp 0x41a211
mov ecx, dword [0x486344]
push ecx
call fcn.004361ad
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fstp qword [esp + esi*8 + 0x94]
inc esi
add esp, 4
cmp esi, dword [0x465c58]
jl 0x41a1f0
jmp case.0x419eef.50713
lea esi, [ebx - 3]
cmp esi, 9
ja 0x41a239
push esi
call fcn.004012e0
jmp 0x41a24d
mov edx, dword [0x486344]
push edx
call fcn.004361ad
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
add esp, 4
fst qword [esp + 0x10]
fstp qword [esp + 0x78]
cmp esi, 9
ja 0x41a265
push esi
call fcn.004012e0
jmp 0x41a278
mov eax, dword [0x486344]
push eax
call fcn.004361ad
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fst qword [esp + 0x84]
add esp, 4
fld1
lea ecx, [esp + 0x78]
fsub qword [esp + 0x10]
mov eax, 0x44de48
fsubrp st(1)
fstp qword [esp + 0x88]
lea ebx, [ebx]
fld dword [eax]
add eax, 4
fdivr qword [ecx]
add ecx, 8
cmp eax, 0x44de54
fstp qword [ecx - 8]
jl 0x41a2a0
jmp case.0x419eef.50713
cmp dword [0x465f60], 0
jne case.0x419eef.50713
call fcn.00401240
mov edi, dword [ebp + 8]
mov esi, eax
add esi, edi
push esi
call fcn.0041b190
mov ecx, dword [0x486344]
add esp, 4
push 0
push esi
push ecx
call fcn.00435f77
add esp, 0xc
push edi
call fcn.00418bf0
add esp, 4
jmp case.0x419eef.50713
mov esi, 3
mov edi, 0x4862e8
call fcn.004014f0
jmp case.0x419eef.50713
push ebx
call fcn.004012c0
add esp, 4
push ebx
mov word [0x4ac498], ax
call fcn.004012c0
add esp, 4
push ebx
mov word [0x4660a0], ax
call fcn.004012c0
sub ax, word [0x4ac498]
add esp, 4
push ebx
mov word [0x4ac486], ax
call fcn.004012c0
add esp, 4
sub ax, word [0x4660a0]
mov word [0x466040], ax
jmp case.0x419eef.50713
cmp edi, 0xd
jb case.0x419eef.50713
mov edx, dword [0x486344]
push 1
push 0x10
push edx
call fcn.00435f77
add esp, 0xc
call fcn.00401240
push 1
mov dword [0x465d28], eax
mov eax, dword [0x486344]
push 0x1c
push eax
call fcn.00435f77
add esp, 0xc
call fcn.00401240
add dword [0x465d28], eax
mov dword [0x4862f0], 0x407a30
jmp case.0x419eef.50713
cmp esi, 0xfd09
je case.0x419738.33422
cmp esi, 0xfe02
jne case.0x419eef.50713
cmp ebx, 2
jne case.0x419eef.50713
mov ecx, dword [0x486344]
push ecx
push 0x40
push 0x4ac440
call fcn.00434fa4
add esp, 0xc
jmp case.0x419eef.50713
mov dword [esp + 0x4c], edi
cmp edi, 0x10
jbe 0x41a3f9
mov dword [esp + 0x4c], 0x10
mov edx, dword [0x486344]
mov ebx, dword [esp + 0x4c]
push edx
push ebx
lea eax, [esp + 0x218]
push 1
push eax
call fcn.00435763
xor edi, edi
add esp, 0x10
xor edx, edx
xor esi, esi
mov dword [0x465c58], edi
test ebx, ebx
jbe 0x41a481
jmp 0x41a430
mov cl, byte [esp + edx + 0x210]
mov eax, 1
shl eax, cl
mov ecx, eax
and ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
inc edx
add edi, ecx
or esi, eax
cmp edx, ebx
jb 0x41a430
mov dword [0x465c58], edi
cmp esi, 0x38
jne 0x41a472
mov dx, word [0x45b20c]
mov al, byte [0x45b20e]
mov word [esp + 0x34], dx
mov byte [esp + 0x36], al
jmp 0x41a481
cmp esi, 0x3a
jne 0x41a481
mov ecx, dword [0x45b210]
mov dword [esp + 0x34], ecx
xor eax, eax
test edi, edi
jle 0x41a4a1
jmp 0x41a490
movzx edx, byte [esp + eax + 0x34]
mov byte [esp + edx + 0x260], al
inc eax
cmp eax, edi
jl 0x41a490
mov esi, dword [0x466120]
mov edi, dword [esp + 0x4c]
mov byte [eax + 0x4ac420], 0
mov ecx, 0x10
dec ecx
xor edx, edx
mov eax, ecx
div edi
movzx eax, byte [esp + edx + 0x210]
movzx edx, byte [esp + eax + 0x260]
lea eax, [esi*4]
or edx, eax
mov esi, edx
test ecx, ecx
jne 0x41a4b7
mov dword [0x466120], esi
mov ecx, dword [esp + 0x48]
mov edx, dword [0x486344]
push 0
push ecx
push edx
call fcn.00435f77
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x418d74
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x41a5be
push ebx
call fcn.0043493c
mov esi, eax
add esp, 4
test esi, esi
je 0x41a5be
mov edi, dword [esp + 0x54]
mov eax, dword [0x486344]
push 0
push edi
push eax
call fcn.00435f77
mov ecx, dword [0x486344]
add esp, 0xc
push ecx
push 1
push ebx
push esi
call fcn.00435763
mov ecx, dword [esp + 0x68]
mov eax, ebx
push 1
shr eax, 2
mov edx, esi
call fcn.0040b190
mov edx, dword [0x486344]
add esp, 0x14
mov dword [esp + 0x48], edx
call fcn.004338b4
mov dword [0x486344], eax
test eax, eax
je 0x41a5ab
push eax
push 1
push ebx
push esi
call fcn.004359fe
mov eax, dword [0x486344]
push 0
push 0
push eax
call fcn.00435f77
add esp, 0x1c
neg edi
push edi
call fcn.00418bf0
mov ecx, dword [0x486344]
add esp, 4
push ecx
call fcn.00436131
add esp, 4
mov edx, dword [esp + 0x48]
push esi
mov dword [0x486344], edx
call fcn.0043481f
add esp, 4
xor edi, edi
mov esi, dword [0x465c58]
cmp esi, edi
jle 0x41a5fe
lea edi, [esp + 0x130]
lea ecx, [esp + 0xb0]
mov ebx, esi
lea ebx, [ebx]
mov eax, edi
mov edx, esi
fld qword [eax]
add eax, 8
sub edx, 1
fmul qword [ecx]
fstp qword [eax - 8]
jne 0x41a5e4
add ecx, 8
add edi, 0x20
sub ebx, 1
jne 0x41a5e0
cmp dword [esp + 0x44], 0
je 0x41a725
mov dword [esp + 0x18], 0
test esi, esi
jle 0x41a713
fldz
lea eax, [esp + 0x138]
mov dword [esp + 0x30], eax
lea edx, [esp + 0xd0]
xor ebx, ebx
mov dword [esp + 0x10], ebx
xor edi, edi
fst qword [edx]
cmp dword [0x465c58], 4
jl 0x41a6a4
mov esi, dword [0x465c58]
mov eax, dword [esp + 0x30]
add esi, 0xfffffffc
lea ecx, [esp + ebx*8 + 0x78]
shr esi, 2
mov dword [esp + 0x48], ecx
inc esi
lea ecx, [esp + ebx*8 + 0x1c8]
mov ebx, dword [esp + 0x48]
lea edi, [esi*4]
fld qword [ecx - 0x18]
add eax, 0x20
fmul qword [eax - 0x28]
add ecx, 0x60
sub esi, 1
fmul qword [ebx]
fadd qword [edx]
fld qword [ecx - 0x60]
fmul qword [eax - 0x20]
fmul qword [ebx]
faddp st(1)
fld qword [ecx - 0x48]
fmul qword [eax - 0x18]
fmul qword [ebx]
faddp st(1)
fld qword [ecx - 0x30]
fmul qword [eax - 0x10]
fmul qword [ebx]
faddp st(1)
fstp qword [edx]
jne 0x41a66b
mov ebx, dword [esp + 0x10]
cmp edi, dword [0x465c58]
jge 0x41a6e6
mov eax, dword [esp + 0x18]
mov esi, dword [0x465c58]
lea ecx, [ebx + edi*2]
add ecx, edi
lea eax, [edi + eax*4]
lea eax, [esp + eax*8 + 0x130]
lea ecx, [esp + ecx*8 + 0x1b0]
sub esi, edi
fld qword [ecx]
add eax, 8
fmul qword [eax - 8]
add ecx, 0x18
sub esi, 1
fmul qword [esp + ebx*8 + 0x78]
fadd qword [edx]
fstp qword [edx]
jne 0x41a6ce
inc ebx
add edx, 8
cmp ebx, 3
mov dword [esp + 0x10], ebx
jl 0x41a633
mov eax, dword [esp + 0x18]
add dword [esp + 0x30], 0x20
inc eax
cmp eax, dword [0x465c58]
mov dword [esp + 0x18], eax
jl 0x41a62d
fstp st(0)
lea edx, [esp + 0xd0]
call fcn.00410e40
mov esi, dword [0x465c58]
fldz
fcomp qword [esp + 0x90]
fnstsw ax
test ah, 0x44
jnp 0x41a75c
fldz
xor eax, eax
fstp dword [0x46611c]
test esi, esi
jle 0x41a75c
fld1
fld st(0)
inc eax
cmp eax, esi
fdiv qword [esp + eax*8 + 0x88]
fstp dword [eax*4 + 0x46610c]
jl 0x41a745
fstp st(0)
cmp dword [esp + 0x44], 0
jne 0x41a788
xor eax, eax
test esi, esi
jle 0x41a788
lea ecx, [esp + 0x130]
fld dword [eax*4 + 0x486150]
inc eax
fdiv qword [ecx]
add ecx, 0x28
cmp eax, esi
fstp dword [eax*4 + 0x48614c]
jl 0x41a770
mov ecx, dword [esp + 0x364]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004334ab
mov esp, ebp
pop ebp
ret