Function at 0x4e3a60
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, 0x554
mov eax, dword [0x641a90]
xor eax, esp
mov dword [esp + 0x550], eax
movaps xmm0, xmmword [0x5d7100]
xor eax, eax
movupd xmmword [esp + 0x29c], xmm0
push ebx
movaps xmm0, xmmword [0x5d7100]
mov ebx, ecx
movupd xmmword [esp + 0x2b0], xmm0
mov dword [esp + 0x24], eax
xorps xmm0, xmm0
mov dword [esp + 4], eax
movupd xmmword [esp + 0x280], xmm0
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x3c8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], 0x10
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], 0x3020100
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], 0
mov dword [esp + 0x278], 0
mov dword [esp + 0x27c], 0xfff
mov dword [esp + 0x10], eax
movupd xmmword [esp + 0x290], xmm0
push esi
movaps xmm0, xmmword [0x5d7100]
movupd xmmword [esp + 0x254], xmm0
push edi
movsd xmm0, qword [0x62d3c8]
movsd qword [esp + 0x268], xmm0
cmp eax, 0xa
jb 0x4e3b74
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x550]
xor ecx, esp
call fcn.005920c1
mov esp, ebp
pop ebp
ret 4
inc eax
lea edx, [esp + 0x2c8]
mov dword [ebx + 0x3c8], eax
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp ecx, esi
sete al
inc ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [edx], xmm0
add edx, 8
cmp ecx, 4
jl 0x4e3b86
inc esi
cmp esi, 4
jl 0x4e3b84
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
cmp eax, 0x200
ja 0x4e3b58
test eax, eax
je 0x4e3e13
mov esi, dword [ebp + 8]
dec eax
mov ecx, ebx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.004ec550
mov edi, dword [esp + 0x70]
mov dword [esp + 0x30], edi
cmp edi, 0x201
jne 0x4e3fbe
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
mov ecx, ebx
mov esi, eax
call fcn.004d2a10
add eax, dword [ebp + 8]
push 0
push esi
push dword [ebx + 0x4fa58]
mov dword [ebx + 0x44710], eax
call fcn.00595cb4
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, ebx
call fcn.004d2a10
add eax, esi
mov esi, dword [esp + 0x18]
lea edi, [esi + esi*2]
add edi, edi
cmp dword [ebx + edi*8 + 0x4f85c], 0
mov dword [ebx + edi*8 + 0x4f868], eax
jne 0x4e3d38
test eax, eax
jle 0x4e3d38
push 0
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
lea eax, [esp + 0x78]
mov ecx, ebx
push 1
push eax
call fcn.004dafc0
test eax, eax
je 0x4e3d38
mov ecx, dword [esp + 0x84]
add esi, 0x1a82
mov dword [ebx + edi*8 + 0x4f854], ecx
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x80]
add eax, eax
mov dword [ebx + edi*8 + 0x4f858], esi
cmp dword [esp + 0x8c], 0
mov dword [ebx + eax*8], 6
mov eax, dword [esp + 0x7c]
mov dword [ebx + edi*8 + 0x4f85c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov dword [ebx + edi*8 + 0x4f870], eax
jne 0x4e3cea
test al, 1
jne 0x4e3cea
imul eax, ecx
mov dword [ebx + edi*8 + 0x4f854], eax
mov eax, dword [esp + 0x30]
xor edx, edx
lea ecx, [esi*4]
cmp dword [ebx + edi*8 + 0x4f854], ecx
not eax
setg dl
test eax, edx
je 0x4e3d20
mov eax, dword [ebx + edi*8 + 0x4f854]
cdq
sub eax, edx
sar eax, 1
mov dword [ebx + edi*8 + 0x4f854], eax
lea eax, [esi + esi]
mov dword [ebx + edi*8 + 0x4f858], eax
mov eax, dword [ebx + edi*8 + 0x4f868]
mov ecx, ebx
movsx esi, word [ebx]
add eax, 0xc
push eax
call fcn.004e39d0
mov word [ebx], si
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
push 0
push dword [esp + 0x6c]
push dword [ebx + 0x4fa58]
call fcn.00595cb4
mov eax, dword [esp + 0x78]
add esp, 0xc
test eax, eax
jne 0x4e3bc4
test edi, edi
je 0x4e3e13
push edi
call fcn.00593e38
mov esi, eax
add esp, 4
test esi, esi
je 0x4e3e13
mov eax, dword [esp + 0x2c]
push 0
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
push dword [ebx + 0x4fa58]
push 1
push edi
push esi
call fcn.00595b79
mov eax, dword [esp + 0x54]
add esp, 0x1c
mov ecx, ebx
push eax
push 1
mov eax, edi
shr eax, 2
push eax
push esi
call fcn.004ebb40
mov edi, dword [ebx + 0x4fa58]
call fcn.005996be
mov dword [ebx + 0x4fa58], eax
test eax, eax
je 0x4e3e04
push eax
mov eax, dword [esp + 0x10]
push 1
push eax
push esi
call fcn.0059628c
push 0
push 0
push dword [ebx + 0x4fa58]
call fcn.00595cb4
mov eax, dword [esp + 0x48]
add esp, 0x1c
neg eax
mov ecx, ebx
push eax
call fcn.004e3a60
push dword [ebx + 0x4fa58]
call fcn.00593079
add esp, 4
push esi
mov dword [ebx + 0x4fa58], edi
call fcn.00592c4b
add esp, 4
mov esi, dword [ebx + 0x245dc]
xor edx, edx
test esi, esi
jle 0x4e3e5b
lea edi, [esp + 0x2c8]
jmp 0x4e3e30
movsd xmm1, qword [esp + edx*8 + 0x2a8]
mov eax, edi
mov ecx, esi
lea ecx, [ecx]
movsd xmm0, qword [eax]
lea eax, [eax + 8]
mulsd xmm0, xmm1
movsd qword [eax - 8], xmm0
dec ecx
jne 0x4e3e40
inc edx
add edi, 0x20
cmp edx, esi
jl 0x4e3e30
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4e3f09
test esi, esi
jle 0x4e3eef
lea eax, [esp + 0x2c8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x3a8]
xor edi, edi
jmp 0x4e3e90
movsd xmm1, qword [esp + edi + 0x258]
lea ecx, [esp + 0x348]
xorps xmm0, xmm0
add ecx, edi
movsd qword [edx], xmm0
lea esp, [esp]
movsd xmm0, qword [ecx]
add ecx, 0x18
mulsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, xmm1
addsd xmm0, qword [edx]
movsd qword [edx], xmm0
dec esi
jne 0x4e3eb0
mov esi, dword [ebx + 0x245dc]
add edi, 8
mov eax, dword [esp + 0x2c]
add edx, 8
cmp edi, 0x18
jl 0x4e3e90
add eax, 0x20
dec dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jne 0x4e3e85
lea eax, [esp + 0x3a8]
mov ecx, ebx
push eax
lea eax, [ebx + 0x24664]
push eax
call fcn.004ca9f0
mov edx, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x288]
ucomisd xmm0, qword [0x5c35f0]
lahf
test ah, 0x44
jnp 0x4e3f66
xor eax, eax
mov dword [ebx + 0x24650], 0
cmp dword [ebx + 0x245dc], eax
jle 0x4e3f66
lea ecx, [ebx + 0x24644]
lea ebx, [ebx]
movsd xmm0, qword [0x62d3c8]
lea ecx, [ecx + 4]
divsd xmm0, qword [esp + eax*8 + 0x288]
inc eax
cvtpd2ps xmm0, xmm0
movss dword [ecx - 4], xmm0
cmp eax, dword [ebx + 0x245dc]
jl 0x4e3f40
test edx, edx
jne 0x4e3fa5
xor ecx, ecx
cmp dword [ebx + 0x245dc], ecx
jle 0x4e3fa5
lea edx, [esp + 0x2c8]
lea eax, [ebx + 0x24654]
movss xmm0, dword [eax]
lea eax, [eax + 4]
cvtps2pd xmm0, xmm0
inc ecx
lea edx, [edx + 0x28]
divsd xmm0, qword [edx - 0x28]
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
cmp ecx, dword [ebx + 0x245dc]
jl 0x4e3f81
mov ecx, dword [esp + 0x55c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005920c1
mov esp, ebp
pop ebp
ret 4
cmp edi, 0x2bc
jne 0x4e404f
cmp dword [esp + 0x10], 0xe
sbb eax, eax
and eax, dword [esp + 0x10]
movsx edi, byte [eax + str.11124811248488]
sub edi, 0x30
imul edi, dword [esp + 0x14]
test edi, edi
je case.0x4e5967.64773
push edi
call fcn.00593e38
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.005960c7
push dword [ebx + 0x4fa58]
mov esi, eax
push 1
push edi
push dword [esp + 0x2c]
call fcn.00595b79
push edi
mov edi, dword [esp + 0x34]
push edi
push 3
push dword [ebx + 0x49734]
call fcn.00452460
push edi
call fcn.00592c4b
push 0
push esi
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0x34
jmp 0x4e3d38
mov ecx, dword [esp + 0x10]
cmp edi, 0x83bb
jne 0x4e41cc
mov eax, dword [0x5d7534]
cmp ecx, 0xe
mov dword [esp + 0x74], eax
mov ax, word [0x5d7538]
movq xmm0, qword [str.Photoshop_3.0]
mov esi, dword [0x5d753c]
mov word [esp + 0x1c], ax
mov al, byte [0x5d753a]
mov byte [esp + 0x66], al
mov al, byte [0x5d7540]
mov byte [esp + 0x5c], al
sbb eax, eax
and eax, ecx
movq qword [esp + 0x48], xmm0
movsx eax, byte [eax + str.11124811248488]
sub eax, 0x30
imul eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
test eax, eax
je 0x4e416b
add eax, 0x1a
push eax
mov dword [esp + 0x5c], eax
call fcn.00593e38
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x4e4167
push dword [ebx + 0x4fa58]
call fcn.005960c7
mov ecx, dword [esp + 0x24]
mov edi, eax
movq xmm0, qword [esp + 0x4c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x54]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ax, word [esp + 0x20]
mov word [ecx + 0xc], ax
mov eax, 0x404
mov word [ecx + 0x12], ax
mov eax, edx
mov dword [ecx + 0xe], esi
mov dword [ecx + 0x14], 0
sar eax, 8
mov byte [ecx + 0x18], al
lea eax, [ecx + 0x1a]
mov byte [ecx + 0x19], dl
push dword [ebx + 0x4fa58]
push 1
push edx
push eax
call fcn.00595b79
push dword [esp + 0x6c]
mov esi, dword [esp + 0x38]
push esi
push 2
push dword [ebx + 0x49734]
call fcn.00452460
push esi
call fcn.00592c4b
push 0
push edi
push dword [ebx + 0x4fa58]
call fcn.00595cb4
mov edi, dword [esp + 0x64]
add esp, 0x34
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 8]
sub edi, 0x829d
je 0x4e4afb
sub edi, 0x362
je 0x4e4c8f
sub edi, 3
jne case.0x4e5967.64773
xor esi, esi
mov ecx, ebx
call fcn.004d29d0
movsd xmm1, qword [0x5e91f8]
movzx eax, ax
movd xmm0, eax
mov eax, esi
cvtdq2pd xmm0, xmm0
xor eax, 1
inc esi
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebx + eax*4 + 0x24644], xmm0
cmp esi, 4
jl 0x4e4191
jmp 0x4e3d38
cmp edi, 0x100
ja 0x4e43c4
je case.0x4e5705.61441
lea eax, [edi - 2]
cmp eax, 0x2c
ja case.0x4e5967.64773
movzx eax, byte [eax + 0x4e5b38]
jmp dword [eax*4 + 0x4e5b00]
mov ecx, ebx
call fcn.004d29d0
mov word [ebx + 0x44aa], ax
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
mov word [ebx + 0x44a8], ax
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
add word [ebx + 0x44aa], ax
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
mov edi, dword [esp + 0xc]
movzx eax, ax
test eax, eax
je 0x4e3d3f
mov dword [ebx + 0x388], eax
jmp 0x4e3d3f
cmp dword [esp + 0x10], 3
jne case.0x4e5967.64773
cmp dword [esp + 0x14], 1
jne case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x5c3608]
cvtpd2ps xmm0, xmm0
movss dword [ebx + edi*8 + 0x245bc], xmm0
jmp case.0x4e5967.64773
cmp dword [esp + 0x10], 3
jne case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x364], xmm0
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
mov dword [ebx + edi*4 + 0x36c], eax
mov eax, dword [ebx + 0x3e0]
mov dword [ebx + 0x3e8], eax
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + edi*4 + 0x245b4], xmm0
jmp case.0x4e5967.64773
cmp dword [esp + 0x14], 0x32
jb case.0x4e5967.64773
movss xmm0, dword [ebx + 0x24644]
lea esi, [ebx + 0x24644]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4e3d38
push 1
push 0xc
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov edi, 3
mov edi, edi
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
dec edi
jne 0x4e4340
jmp 0x4e3d38
cmp dword [esp + 0x10], 7
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.00597fff
add esp, 4
cmp eax, 0xff
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.00597fff
add esp, 4
cmp eax, 0xd8
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
sub eax, 2
mov dword [ebx + 0x39c], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x3a8], eax
jmp case.0x4e5967.64773
cmp edi, 0x201
ja 0x4e47d8
add edi, 0xfffffeff
cmp edi, 0x8f
ja case.0x4e5967.64773
movzx eax, byte [edi + 0x4e5bc0]
jmp dword [eax*4 + 0x4e5b68]
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov esi, dword [esp + 0x18]
add esi, 0x1a82
lea ecx, [esi + esi*2]
add ecx, ecx
mov dword [ebx + ecx*8], eax
jmp 0x4e3d38
mov ecx, ebx
call fcn.004d29d0
mov esi, dword [esp + 0x18]
movzx ecx, ax
lea eax, [esi + esi*2]
add eax, eax
mov dword [ebx + eax*8 + 0x4f864], ecx
jmp 0x4e3d38
push dword [ebx + 0x4fa58]
lea eax, [ebx + 0x11]
push 1
push 0x200
push eax
call fcn.00595b79
add esp, 0x10
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [ebx + 0x211]
push 0x40
push eax
call fcn.005963d8
add esp, 0xc
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [ebx + 0x251]
push 0x40
push eax
call fcn.005963d8
add esp, 0xc
jmp case.0x4e5967.64773
cmp dword [esp + 0x10], 4
jne case.0x4e5967.64773
mov dword [ebx + 0x446c4], 0x4ddde0
mov dword [ebx + 0x44a0], 0x2008
jmp case.0x4e5705.61447
mov ecx, ebx
call fcn.004d29d0
mov esi, dword [esp + 0x18]
and eax, 7
movsx ecx, byte [eax + str.50132467]
lea eax, [esi + esi*2]
sub ecx, 0x30
add eax, eax
mov dword [ebx + eax*8 + 0x4f86c], ecx
jmp 0x4e3d38
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 7
lea eax, [eax + eax*2]
add eax, eax
mov dword [ebx + eax*8 + 0x4f870], ecx
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [esp + 0x41c]
push 0x40
push eax
call fcn.005963d8
push 5
lea eax, [esp + 0x428]
push str.Adobe
push eax
call fcn.00596360
add esp, 0x18
test eax, eax
je 0x4e45dd
push 5
lea eax, [esp + 0x41c]
push str.dcraw
push eax
call fcn.00596360
add esp, 0xc
test eax, eax
je 0x4e45dd
push 5
lea eax, [esp + 0x41c]
push str.UFRaw
push eax
call fcn.00596360
add esp, 0xc
test eax, eax
je 0x4e45dd
push 6
lea eax, [esp + 0x41c]
push str.Bibble
push eax
call fcn.00596360
add esp, 0xc
test eax, eax
je 0x4e45dd
push 0xa
lea eax, [esp + 0x41c]
push str.Nikon_Scan
push eax
call fcn.00596360
add esp, 0xc
test eax, eax
je 0x4e45dd
mov ecx, str.Digital_Photo_Professional
lea eax, [esp + 0x418]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e45d0
test dl, dl
je 0x4e45cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e45d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e45b0
xor eax, eax
jmp 0x4e45d5
sbb eax, eax
or eax, 1
test eax, eax
jne case.0x4e5967.64773
mov dword [ebx + 0x4408], 0
jmp case.0x4e5967.64773
push 0
mov ecx, ebx
call fcn.004d2df0
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [ebx + 0x2d1]
push 1
push 0x40
push eax
call fcn.00595b79
add esp, 0x10
jmp case.0x4e5967.64773
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov esi, dword [esp + 0x18]
lea ecx, [esi + esi*2]
add ecx, ecx
mov dword [ebx + ecx*8 + 0x4f878], eax
jmp 0x4e3d38
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov edi, dword [esp + 0x18]
lea ecx, [edi + edi*2]
add ecx, ecx
mov dword [ebx + ecx*8 + 0x4f87c], eax
jmp case.0x4e5967.64773
mov esi, dword [esp + 0x14]
cmp esi, 1
jbe 0x4e4671
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
jmp 0x4e4678
mov ecx, ebx
call fcn.004d2a10
mov edi, dword [esp + 0x18]
mov ecx, eax
lea eax, [edi + edi*2]
add eax, eax
mov dword [ebx + eax*8 + 0x4f868], ecx
cmp esi, 1
jne 0x4e46aa
mov dword [ebx + eax*8 + 0x4f87c], 0
mov dword [ebx + eax*8 + 0x4f878], 0
jmp 0x4e3d38
mov edi, dword [esp + 0xc]
cmp esi, 4
mov esi, dword [ebp + 8]
jne 0x4e3d3f
mov dword [ebx + 0x446c4], 0x4eb120
mov dword [ebx + 0x4408], 5
jmp 0x4e3d3f
mov ecx, 0x5e0248
lea eax, [ebx + 0x251]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e4700
test dl, dl
je 0x4e46fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e4700
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e46e0
xor eax, eax
jmp 0x4e4705
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4e4743
mov esi, dword [esp + 0x18]
lea eax, [esi + esi*2]
add eax, eax
cmp dword [ebx + eax*8 + 0x4f854], 0xf20
jne 0x4e4743
mov ecx, ebx
mov dword [ebx + 0x446c4], 0x4eba30
call fcn.004d2a10
add eax, dword [ebp + 8]
inc esi
mov dword [ebx + 0x398], eax
mov dword [esp + 0x18], esi
jmp 0x4e3d38
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4e47a9
jmp 0x4e4750
push dword [ebx + 0x4fa58]
dec esi
mov dword [esp + 0x18], esi
call fcn.005960c7
add esp, 4
mov ecx, ebx
mov edi, eax
push 0
call fcn.004d2a10
add eax, dword [ebp + 8]
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
push dword [ebp + 8]
call fcn.004e3a60
test eax, eax
jne 0x4e3d38
push eax
lea eax, [edi + 4]
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
test esi, esi
jne 0x4e4750
dec esi
mov dword [esp + 0x14], esi
jmp 0x4e3d38
mov eax, dword [str.Sarnoff]
mov dword [ebx + 0x211], eax
mov eax, dword [0x5e0258]
mov dword [ebx + 0x215], eax
mov dword [ebx + 0x43f4], 0xfff
jmp case.0x4e5967.64773
cmp edi, 0xc612
ja 0x4e5225
je 0x4e51dc
cmp edi, 0x8603
ja 0x4e4bf2
je 0x4e4b0e
cmp edi, 0x827d
ja 0x4e4a13
je 0x4e5ae4
cmp edi, 0x7221
ja 0x4e48fa
je 0x4e48ea
cmp edi, 0x7200
ja 0x4e48cc
je 0x4e48bc
cmp edi, 0x202
je case.0x4e5705.61448
cmp edi, 0x7010
jne case.0x4e5967.64773
xor esi, esi
lea esp, [esp]
mov ecx, ebx
call fcn.004d29d0
shr eax, 2
and eax, 0xfff
mov dword [esp + esi*4 + 0x274], eax
inc esi
cmp esi, 4
jl 0x4e4850
xor edi, edi
mov edi, edi
mov eax, dword [esp + edi*4 + 0x270]
mov edx, dword [esp + edi*4 + 0x274]
inc eax
cmp eax, edx
ja 0x4e48b1
mov ecx, edi
mov esi, 1
shl si, cl
sub edx, eax
lea ecx, [eax + 0x22a2]
inc edx
lea ecx, [ebx + ecx*2]
lea esp, [esp]
mov ax, word [ecx - 2]
lea ecx, [ecx + 2]
add ax, si
mov word [ecx - 2], ax
dec edx
jne 0x4e48a0
inc edi
cmp edi, 5
jl 0x4e4870
jmp 0x4e3d38
mov ecx, ebx
call fcn.004d2a10
mov dword [esp + 0x2c], eax
jmp case.0x4e5967.64773
cmp edi, 0x7201
jne case.0x4e5967.64773
mov ecx, ebx
call fcn.004d2a10
mov edi, eax
mov dword [esp + 0xc], edi
jmp 0x4e3d3f
mov ecx, ebx
call fcn.004d2a10
mov dword [esp + 0x38], eax
jmp case.0x4e5967.64773
sub edi, 0x7250
je 0x4e49ef
sub edi, 0xb3
je 0x4e49bd
sub edi, 0x10
jne case.0x4e5967.64773
lea esi, [ebx + 0x24644]
mov edi, 4
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
dec edi
jne 0x4e4926
movss xmm0, dword [ebx + 0x24648]
movss xmm1, dword [0x5e925c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4e4971
movss xmm0, dword [ebx + 0x2464c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4e4971
lea eax, [edi + 1]
jmp 0x4e4973
xor eax, eax
add eax, eax
movss xmm1, dword [ebx + eax*4 + 0x24644]
addss xmm1, dword [ebx + eax*4 + 0x24648]
movss dword [ebx + eax*4 + 0x24644], xmm1
subss xmm1, dword [ebx + eax*4 + 0x24648]
movss xmm0, dword [ebx + eax*4 + 0x24644]
subss xmm0, xmm1
movss dword [ebx + eax*4 + 0x24648], xmm1
movss dword [ebx + eax*4 + 0x24644], xmm0
jmp 0x4e3d38
xor esi, esi
nop
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
xor eax, eax
cmp esi, 2
cvtdq2ps xmm0, xmm0
setl al
xor eax, esi
inc esi
movss dword [ebx + eax*4 + 0x24644], xmm0
cmp esi, 4
jl 0x4e49c0
jmp 0x4e3d38
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
mov ecx, ebx
push eax
call fcn.004e2140
xor eax, eax
mov word [ebx + 0x44a6], ax
jmp case.0x4e5967.64773
cmp edi, 0x829a
ja 0x4e416e
je 0x4e4ac7
sub edi, 0x828d
je 0x4e4a92
dec edi
je 0x4e4a60
sub edi, 2
jne case.0x4e5967.64773
push 0
mov ecx, ebx
call fcn.004d2a10
add eax, esi
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
push esi
call fcn.004e02e0
jmp case.0x4e5967.64773
cmp dword [ebx + 0x388], 9
jne case.0x4e5967.64777
xor esi, esi
nop
push dword [ebx + 0x4fa58]
call fcn.00597fff
and al, 3
add esp, 4
mov byte [ebx + esi + 0x311], al
inc esi
cmp esi, 0x24
jl 0x4e4a70
jmp 0x4e3d38
mov ecx, ebx
call fcn.004d29d0
cmp ax, 6
jne case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
mov edi, dword [esp + 0xc]
cmp ax, 6
jne 0x4e3d3f
mov dword [ebx + 0x388], 9
jmp 0x4e3d3f
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
mov edi, dword [esp + 0x18]
fstp dword [esp + 0x30]
movss xmm0, dword [esp + 0x30]
movss dword [ebx + 0x368], xmm0
lea eax, [edi + edi*2]
add eax, eax
movss dword [ebx + eax*8 + 0x4f880], xmm0
jmp case.0x4e5967.64773
push ecx
mov ecx, ebx
call fcn.004d3030
fstp dword [ebx + 0x36c]
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [esp + 0x41c]
push 7
push 1
push eax
call fcn.00595b79
push 6
lea eax, [esp + 0x42c]
push str.MATRIX
push eax
call fcn.00596360
add esp, 0x1c
test eax, eax
jne case.0x4e5967.64773
mov dword [ebx + 0x43fc], eax
xor edi, edi
lea eax, [ebx + 0x24694]
mov dword [ebx + 0x245dc], 4
mov dword [esp + 0x1c], eax
xor esi, esi
mov eax, esi
xor eax, 1
add eax, 0x91a5
add eax, edi
lea eax, [ebx + eax*4]
push eax
push 0x5d910c
push dword [ebx + 0x4fa58]
call fcn.00598db5
inc esi
add esp, 0xc
cmp esi, 4
jl 0x4e4b62
cmp dword [ebx + 0x24618], 0
mov edx, dword [esp + 0x1c]
je 0x4e4bda
xorps xmm1, xmm1
mov eax, edx
mov ecx, 4
movss xmm0, dword [eax]
add eax, 4
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
dec ecx
jne 0x4e4ba2
mov eax, edx
mov ecx, 4
lea ebx, [ebx]
movss xmm0, dword [eax]
lea eax, [eax + 4]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
dec ecx
jne 0x4e4bc0
add edi, 4
add edx, 0x10
mov dword [esp + 0x1c], edx
cmp edi, 0xc
jl 0x4e4b60
jmp 0x4e3d38
cmp edi, 0x9218
ja 0x4e4d89
je 0x4e4d28
cmp edi, 0x8825
ja 0x4e4cd1
je 0x4e4caa
sub edi, 0x8606
je 0x4e4c79
sub edi, 0x163
je 0x4e4c52
sub edi, 0xa
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.005960c7
mov dword [ebx + 0x3a4], eax
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x3b0], eax
jmp case.0x4e5967.64773
push 0
mov ecx, ebx
call fcn.004d2a10
add eax, esi
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
push esi
call fcn.004df190
jmp case.0x4e5967.64773
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
mov ecx, ebx
push eax
call fcn.004e2360
mov eax, dword [str.Leaf]
mov dword [ebx + 0x211], eax
mov al, byte [0x5e026c]
mov byte [ebx + 0x215], al
jmp case.0x4e5967.64773
push 0
mov ecx, ebx
call fcn.004d2a10
add eax, esi
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
push esi
call fcn.004dfff0
jmp case.0x4e5967.64773
sub edi, 0x9102
je 0x4e4d16
sub edi, 0x108
je 0x4e4d00
sub edi, 7
jne case.0x4e5967.64773
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov dword [ebx + 0x380], eax
jmp case.0x4e5967.64773
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fstp dword [ebx + 0x370]
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d2a10
mov dword [ebx + 0x384], eax
jmp case.0x4e5967.64773
lea esi, [ebx + 0x24694]
mov dword [ebx + 0x43fc], 0
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 3
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fstp st(0)
mov edi, 3
jmp 0x4e4d60
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fstp dword [esi]
add esi, 4
dec edi
jne 0x4e4d60
mov esi, dword [esp + 0x20]
add esi, 0x10
dec dword [esp + 0x1c]
mov dword [esp + 0x20], esi
jne 0x4e4d44
jmp 0x4e3d38
cmp edi, 0xb4c7
ja 0x4e5079
je 0x4e4e5c
sub edi, 0xa010
je 0x4e4dfa
sub edi, 0x14b2
je 0x4e4e79
dec edi
jne case.0x4e5967.64773
mov eax, dword [str.Imacon]
push dword [ebx + 0x4fa58]
mov dword [ebx + 0x211], eax
mov ax, word [0x5e0274]
mov word [ebx + 0x215], ax
mov al, byte [0x5e0276]
mov byte [ebx + 0x217], al
call fcn.005960c7
mov dword [ebx + 0x398], eax
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d2a10
mov dword [ebx + 0x394], eax
mov eax, dword [esp + 0x18]
add eax, 0x1a82
lea eax, [eax + eax*2]
add eax, eax
mov eax, dword [ebx + eax*8]
sub eax, 0x8002
je 0x4e4e4d
sub eax, 2
je 0x4e4e3e
mov edi, dword [esp + 0xc]
dec eax
jne 0x4e3d3f
mov dword [ebx + 0x446c4], 0x4e9c20
jmp 0x4e3d3f
mov dword [ebx + 0x446c4], 0x4e9ac0
jmp case.0x4e5967.64773
mov dword [ebx + 0x446c4], 0x4e9fa0
jmp case.0x4e5967.64773
cmp dword [esp + 0x44], 0
je case.0x4e5967.64773
push 1
push 0x26
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
push 1
push 0x28
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
call fcn.004d2a10
mov ecx, ebx
mov word [ebx + 0x44a6], ax
call fcn.004d2a10
mov ecx, ebx
mov word [ebx + 0x44a4], ax
call fcn.004d2a10
and eax, 7
mov ecx, ebx
mov word [ebx + 0x44ae], ax
call fcn.004d2a10
movzx ecx, word [ebx + 0x44a6]
and eax, 7
sub cx, ax
sub cx, word [ebx + 0x44ae]
mov word [ebx + 0x44aa], cx
mov ecx, ebx
call fcn.004d2a10
and eax, 7
mov ecx, ebx
mov word [ebx + 0x44ac], ax
call fcn.004d2a10
movzx ecx, word [ebx + 0x44a4]
and eax, 7
sub cx, ax
mov eax, 0x1c5e
sub cx, word [ebx + 0x44ac]
mov word [ebx + 0x44a8], cx
cmp word [ebx + 0x44a6], ax
jne 0x4e4f31
mov eax, 7
mov dword [ebx + 0x44a8], 0x1c4c1544
mov word [ebx + 0x44ae], ax
push 1
push 0x34
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
lea esi, [ebx + 0x24644]
mov edi, 3
mov edi, edi
push 0xb
mov ecx, ebx
call fcn.004d3030
fstp dword [esi]
add esi, 4
dec edi
jne 0x4e4f50
push 1
push 0x72
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
call fcn.004d29d0
movzx edi, word [ebx + 0x44a8]
movzx esi, word [ebx + 0x44aa]
mov edx, edi
imul edx, esi
movzx eax, ax
shr eax, 7
imul eax, eax, 0x5a
lea ecx, [edx + edx*2]
mov dword [ebx + 0x245d4], eax
add ecx, ecx
cmp ecx, dword [esp + 0x44]
jne 0x4e500b
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x4e4fd3
lea eax, [edi + esi]
mov word [ebx + 0x44aa], ax
sub ax, word [ebx + 0x44a8]
sub word [ebx + 0x44aa], ax
mov word [ebx + 0x44a8], ax
movzx esi, word [ebx + 0x44aa]
xor eax, eax
movzx edi, word [ebx + 0x44a8]
mov word [ebx + 0x44a6], si
mov word [ebx + 0x44a4], di
mov dword [ebx + 0x245d4], 0
mov dword [ebx + 0x388], 0
mov dword [ebx + 0x44ac], eax
movzx eax, si
movzx ecx, di
imul ecx, eax
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea eax, [ebx + 0x251]
push str.Ixpress__d_Mp
push eax
call fcn.005933b1
add esp, 0xc
mov dword [ebx + 0x446c4], 0x4d8600
cmp dword [ebx + 0x388], 0
je 0x4e506a
test byte [ebx + 0x44ae], 1
je 0x4e5060
mov dword [ebx + 0x388], 0x61616161
mov dword [ebx + 0x446c4], fcn.004ec5e0
mov dword [ebx + 0x43f4], 0xffff
jmp 0x4e3d38
add edi, 0xffff3aea
cmp edi, 5
ja case.0x4e5967.64773
jmp dword [edi*4 + 0x4e5c50]
mov edi, dword [esp + 0x14]
push edi
call fcn.00593e38
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
test esi, esi
je 0x4e3d38
push dword [ebx + 0x4fa58]
push edi
push 1
push esi
call fcn.00595b79
add esp, 0x10
dec esi
je 0x4e5113
add edi, dword [esp + 0x20]
cmp esi, edi
jae 0x4e5113
push 8
inc esi
push str.Neutral
push esi
call fcn.00596360
add esp, 0xc
test eax, eax
jne 0x4e5102
lea eax, [ebx + 0x2464c]
push eax
lea eax, [ebx + 0x24648]
push eax
lea eax, [ebx + 0x24644]
push eax
lea eax, [esi + 8]
push str._f__f__f
push eax
call fcn.00593320
add esp, 0x14
push 0xa
push esi
call fcn.00593a90
mov esi, eax
add esp, 8
test esi, esi
jne 0x4e50c3
push dword [esp + 0x20]
call fcn.00592c4b
add esp, 4
jmp 0x4e3d38
cmp byte [ebx + 0x211], 0
mov edi, dword [esp + 0xc]
jne 0x4e3d3f
movq xmm0, qword [str.Hasselblad]
movq qword [ebx + 0x211], xmm0
mov ax, word [0x5e02a8]
mov word [ebx + 0x219], ax
mov al, byte [0x5e02aa]
mov byte [ebx + 0x21b], al
jmp 0x4e3d3f
mov ecx, dword [esp + 0x28]
movsx ebx, word [ebx]
push dword [ecx + 0x4fa58]
call fcn.005960c7
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, eax
mov edi, dword [eax + 0x3c8]
call fcn.004d29d0
mov ecx, dword [esp + 0x28]
mov word [ecx], ax
call fcn.004d29d0
mov ecx, dword [esp + 0x28]
push 0
call fcn.004d2a10
add eax, esi
push eax
mov eax, dword [esp + 0x30]
push dword [eax + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
push esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
call fcn.004e3a60
mov word [esi], bx
mov ebx, esi
mov dword [esi + 0x43f4], 0xffff
mov dword [esi + 0x3c8], edi
jmp 0x4e3d38
mov esi, 4
push dword [ebx + 0x4fa58]
call fcn.00597fff
mov ecx, dword [ebx + 0x440c]
add esp, 4
shl ecx, 8
add eax, ecx
mov dword [ebx + 0x440c], eax
dec esi
jne 0x4e51e1
cmp byte [ebx + 0x211], 0
jne 0x4e5216
mov dword [ebx + 0x211], 0x474e44
mov dword [ebx + 0x4408], 1
jmp 0x4e3d38
cmp edi, 0xc741
ja 0x4e56e4
je 0x4e56cb
add edi, 0xffff39ec
cmp edi, 0x7b
ja case.0x4e5967.64773
movzx eax, byte [edi + 0x4e5cb8]
jmp dword [eax*4 + 0x4e5c68]
cmp byte [ebx + 0x251], 0
lea edi, [ebx + 0x251]
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea esi, [ebx + 0x211]
push 0x40
push esi
call fcn.005963d8
push 0x20
push esi
call fcn.00593a90
mov edx, eax
add esp, 0x14
test edx, edx
je 0x4e3d38
lea ecx, [edx + 1]
sub edi, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edi + ecx - 1], al
test al, al
jne 0x4e5295
mov byte [edx], al
jmp 0x4e3d38
cmp dword [ebx + 0x388], 9
je case.0x4e5967.64773
mov eax, dword [esp + 0x14]
mov ecx, 4
push dword [ebx + 0x4fa58]
cmp eax, 4
cmova eax, ecx
push eax
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x245dc], eax
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.00595b79
add esp, 0x10
jmp 0x4e5a0d
mov ecx, ebx
call fcn.004d29d0
mov edi, dword [esp + 0xc]
cmp ax, 2
jne 0x4e3d3f
mov eax, 1
mov word [ebx + 0x44b6], ax
jmp 0x4e3d3f
push dword [esp + 0x14]
mov ecx, ebx
call fcn.004da600
jmp case.0x4e5967.64773
mov ecx, ebx
call fcn.004d29d0
movzx eax, ax
mov ecx, ebx
mov dword [ebx + 0x3ec], eax
call fcn.004d29d0
mov edi, dword [esp + 0xc]
movzx ecx, ax
mov eax, dword [ebx + 0x3ec]
imul eax, ecx
mov dword [ebx + 0x3f0], ecx
cmp eax, 0x1000
jbe 0x4e3d3f
mov dword [ebx + 0x3f0], 1
mov dword [ebx + 0x3ec], 1
jmp 0x4e3d3f
mov eax, dword [esp + 0x14]
xorps xmm2, xmm2
movzx esi, ax
movsd qword [esp + 0x58], xmm2
mov dword [esp + 0x30], eax
test esi, esi
je 0x4e53b6
fld qword [esp + 0x58]
mov edi, dword [esp + 0x10]
fstp qword [esp + 0x50]
push edi
mov ecx, ebx
call fcn.004d3030
fadd qword [esp + 0x50]
fst qword [esp + 0x50]
fstp qword [esp + 0x58]
dec esi
jne 0x4e5395
movsd xmm2, qword [esp + 0x58]
mov eax, dword [esp + 0x30]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
mov eax, dword [ebx + 0x3d8]
divsd xmm2, xmm0
movd xmm1, eax
addsd xmm2, qword [0x5c3638]
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x62d480]
addsd xmm2, xmm1
movaps xmm0, xmm2
call fcn.00597301
mov dword [ebx + 0x3d8], eax
jmp 0x4e3d38
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov dword [ebx + 0x43f4], eax
jmp case.0x4e5967.64773
mov esi, dword [esp + 0x10]
mov ecx, ebx
push esi
call fcn.004d3030
fst qword [esp + 0x30]
fstp qword [esp + 0x48]
movsd xmm0, qword [esp + 0x48]
mov ecx, ebx
push esi
movsd qword [ebx + 0x245e0], xmm0
call fcn.004d3030
fdivr qword [esp + 0x30]
fstp qword [ebx + 0x245e0]
jmp 0x4e3d38
cmp dword [ebx + 0x245dc], 0
mov dword [esp + 0x20], 0
jle 0x4e549c
lea esi, [esp + 0x348]
mov edi, edi
mov edi, 3
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fstp qword [esi]
add esi, 8
dec edi
jne 0x4e5475
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebx + 0x245dc]
jl 0x4e5470
mov esi, dword [ebp + 8]
mov dword [esp + 0x40], 1
jmp case.0x4e5967.64773
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp dword [ebx + 0x245dc], ecx
jle case.0x4e5967.64773
lea eax, [esp + 0x2c8]
mov dword [esp + 0x1c], eax
xor edi, edi
cmp dword [ebx + 0x245dc], edi
jle 0x4e54f3
mov esi, eax
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fstp qword [esi]
inc edi
add esi, 8
cmp edi, dword [ebx + 0x245dc]
jl 0x4e54d2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc ecx
add eax, 0x20
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [ebx + 0x245dc]
jl 0x4e54c6
jmp 0x4e3d38
xor esi, esi
cmp dword [ebx + 0x245dc], esi
jle 0x4e3d38
mov edi, dword [esp + 0x10]
mov edi, edi
push edi
mov ecx, ebx
call fcn.004d3030
fstp qword [esp + esi*8 + 0x2a8]
inc esi
cmp esi, dword [ebx + 0x245dc]
jl 0x4e5520
jmp 0x4e3d38
xor esi, esi
cmp dword [ebx + 0x245dc], esi
jle 0x4e3d38
mov edi, dword [esp + 0x10]
nop
push edi
mov ecx, ebx
call fcn.004d3030
fstp qword [esp + esi*8 + 0x288]
inc esi
cmp esi, dword [ebx + 0x245dc]
jl 0x4e5550
jmp 0x4e3d38
mov esi, dword [esp + 0x10]
mov ecx, ebx
push esi
call fcn.004d3030
fstp qword [esp + 0x258]
push esi
mov ecx, ebx
call fcn.004d3030
movsd xmm0, qword [0x62d3c8]
lea eax, [esp + 0x258]
subsd xmm0, qword [esp + 0x258]
fstp qword [esp + 0x260]
mov ecx, 0x5de8bc
subsd xmm0, qword [esp + 0x260]
movsd qword [esp + 0x268], xmm0
mov edi, edi
movss xmm0, dword [ecx]
lea eax, [eax + 8]
movsd xmm1, qword [eax - 8]
add ecx, 4
cvtps2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [eax - 8], xmm1
cmp ecx, 0x5de8c8
jl 0x4e55c0
jmp 0x4e3d38
cmp dword [ebx + 0x440c], 0
jne case.0x4e5967.64773
mov ecx, ebx
call fcn.004d2a10
mov esi, eax
mov ecx, ebx
add esi, dword [ebp + 8]
push esi
call fcn.004e2140
push 0
push esi
push dword [ebx + 0x4fa58]
call fcn.00595cb4
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, ebx
push esi
call fcn.004e3a60
jmp case.0x4e5967.64773
push 3
lea eax, [ebx + 0x24544]
mov ecx, ebx
push eax
call fcn.004e8cd0
jmp case.0x4e5967.64773
mov esi, dword [esp + 0x10]
mov ecx, ebx
push esi
call fcn.004d3010
push esi
mov ecx, ebx
mov word [ebx + 0x44ac], ax
call fcn.004d3010
push esi
mov ecx, ebx
mov word [ebx + 0x44ae], ax
call fcn.004d3010
sub ax, word [ebx + 0x44ac]
mov ecx, ebx
push esi
mov word [ebx + 0x44a8], ax
call fcn.004d3010
sub ax, word [ebx + 0x44ae]
mov word [ebx + 0x44aa], ax
jmp 0x4e3d38
xor esi, esi
cmp dword [esp + 0x14], esi
jbe 0x4e56bc
lea edi, [ebx + 0x24554]
cmp esi, 0x20
jge 0x4e56bc
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, dword [esp + 0x14]
jb 0x4e56a0
mov dword [ebx + 0x3d8], 0
jmp 0x4e3d38
push dword [ebx + 0x4fa58]
call fcn.005960c7
add esp, 4
mov dword [ebx + 0x3a0], eax
jmp case.0x4e5967.64773
cmp edi, 0xf00e
ja 0x4e594e
je 0x4e5907
add edi, 0xffff1000
cmp edi, 0xa
ja case.0x4e5967.64773
jmp dword [edi*4 + 0x4e5d34]
push 0
mov ecx, ebx
call fcn.004d2a10
add eax, esi
push eax
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
push esi
call fcn.004e3a60
jmp case.0x4e5967.64773
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov edi, dword [esp + 0x18]
lea ecx, [edi + edi*2]
add ecx, ecx
mov dword [ebx + ecx*8 + 0x4f854], eax
jmp case.0x4e5967.64773
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3010
mov edi, dword [esp + 0x18]
lea ecx, [edi + edi*2]
add ecx, ecx
mov dword [ebx + ecx*8 + 0x4f858], eax
jmp case.0x4e5967.64773
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov eax, dword [esp + 0x14]
push dword [esp + 0x10]
and eax, 7
lea esi, [edi + edi*2]
add esi, esi
mov dword [ebx + esi*8 + 0x4f870], eax
call fcn.004d3010
mov edi, dword [esp + 0xc]
mov dword [ebx + esi*8 + 0x4f85c], eax
mov esi, dword [ebp + 8]
cmp dword [ebx + 0x3d0], eax
jae 0x4e3d3f
mov dword [ebx + 0x3d0], eax
jmp 0x4e3d3f
mov esi, dword [esp + 0x18]
xor eax, eax
mov word [ebx + 0x44a4], ax
lea eax, [esi + esi*2]
add eax, eax
cmp dword [ebx + eax*8 + 0x4f85c], 0xc
jg 0x4e3d38
mov ecx, ebx
mov dword [ebx + 0x446c4], 0x4dda50
call fcn.004d2a10
neg eax
sbb eax, eax
and eax, 0xffffffc8
add eax, 0x50
mov dword [ebx + 0x44a0], eax
jmp 0x4e3d38
mov ecx, ebx
call fcn.004d2a10
mov esi, dword [esp + 0x18]
lea ecx, [esi + esi*2]
add ecx, ecx
mov dword [ebx + ecx*8 + 0x4f874], eax
jmp 0x4e3d38
mov eax, dword [esp + 0x14]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
call fcn.00595530
movss xmm1, dword [0x5e9250]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
ja 0x4e5854
movaps xmm0, xmm1
call fcn.00597120
mov dword [ebx + 0x3f0], eax
mov dword [ebx + 0x3ec], eax
mov eax, dword [ebx + 0x3ec]
imul eax, dword [ebx + 0x3f0]
test eax, eax
jne 0x4e588a
mov dword [ebx + 0x3f0], 1
mov dword [ebx + 0x3ec], 1
mov eax, dword [ebx + 0x3ec]
xor edi, edi
imul eax, dword [ebx + 0x3f0]
test eax, eax
je 0x4e58f8
lea esi, [ebx + 0x3f4]
jmp 0x4e58b0
push dword [esp + 0x10]
mov ecx, ebx
call fcn.004d3030
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
lea esi, [esi + 4]
or eax, 0xc00
inc edi
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esi - 4], eax
mov eax, dword [ebx + 0x3ec]
imul eax, dword [ebx + 0x3f0]
fldcw word [esp + 0x1c]
cmp edi, eax
jb 0x4e58b0
mov esi, dword [ebp + 8]
mov dword [ebx + 0x3d8], 0
jmp case.0x4e5967.64773
mov edi, dword [esp + 0x10]
mov esi, 4
push edi
mov ecx, ebx
call fcn.004d3010
mov ecx, 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
mov eax, esi
dec esi
cdq
idiv ecx
cvtpd2ps xmm0, xmm0
movss dword [ebx + edx*4 + 0x24644], xmm0
cmp esi, 1
jg 0x4e5910
jmp 0x4e3d38
add edi, 0xffff02fc
cmp edi, 0xfe
ja case.0x4e5967.64773
movzx eax, byte [edi + 0x4e5d74]
jmp dword [eax*4 + 0x4e5d60]
mov eax, dword [esp + 0x14]
mov ecx, 0x10
push dword [ebx + 0x4fa58]
cmp eax, 0x10
cmova eax, ecx
push eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x410]
push 1
push eax
call fcn.00595b79
xor esi, esi
add esp, 0x10
xor edi, edi
mov dword [ebx + 0x245dc], esi
cmp dword [esp + 0x3c], esi
jbe 0x4e5a0d
mov edi, edi
cmp dword [ebx + 0x245dc], 4
jge 0x4e59df
mov cl, byte [esp + esi + 0x408]
mov edx, 1
shl edx, cl
mov eax, edi
and eax, edx
neg eax
sbb eax, eax
inc esi
inc eax
or edi, edx
add dword [ebx + 0x245dc], eax
cmp esi, dword [esp + 0x3c]
jb 0x4e59b0
cmp edi, 0x38
jne 0x4e59fa
mov ax, word [0x5e025c]
mov word [esp + 0x24], ax
mov al, byte [0x5e025e]
mov byte [esp + 0x26], al
jmp 0x4e5a0d
mov eax, dword [esp + 0x24]
cmp edi, 0x3a
mov ecx, 0x1040305
cmove eax, ecx
mov dword [esp + 0x24], eax
mov edx, dword [ebx + 0x245dc]
xor ecx, ecx
test edx, edx
jle 0x4e5a31
lea esp, [esp]
movzx eax, byte [esp + ecx + 0x24]
mov byte [esp + eax + 0x458], cl
inc ecx
cmp ecx, edx
jl 0x4e5a20
mov byte [ebx + ecx + 0xc], 0
mov esi, 0x10
mov edi, dword [ebx + 0x388]
mov ebx, dword [esp + 0x3c]
dec esi
lea edi, [edi*4]
xor edx, edx
mov eax, esi
div ebx
movzx eax, byte [esp + edx + 0x408]
movzx ecx, byte [esp + eax + 0x458]
or edi, ecx
test esi, esi
jne 0x4e5a45
mov ebx, dword [esp + 0x28]
xor eax, eax
test edi, edi
sete al
sub edi, eax
mov dword [ebx + 0x388], edi
jmp 0x4e3d38
cmp dword [esp + 0x14], 0xd
jb case.0x4e5967.64773
push 1
push 0x10
push dword [ebx + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
call fcn.004d2a10
push 1
push 0x1c
push dword [ebx + 0x4fa58]
mov dword [ebx + 0x398], eax
call fcn.00595cb4
add esp, 0xc
mov ecx, ebx
call fcn.004d2a10
add dword [ebx + 0x398], eax
mov dword [ebx + 0x446c4], 0x4dda50
jmp case.0x4e5967.64773
cmp dword [esp + 0x10], 2
jne case.0x4e5967.64773
push dword [ebx + 0x4fa58]
lea eax, [ebx + 0x291]
push 0x40
push eax
call fcn.005963d8
add esp, 0xc
jmp case.0x4e5967.64773