Function at 0x4ddf90
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov dword [ebp - 0x54], 0xffffffff
mov eax, 0x410
mov dword [ebp - 0x68], 0x45f30410
mov dword [ebp - 0x80], eax
push edi
mov eax, dword [esi + 0x49734]
or edi, 0xffffffff
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
test dword [eax + 0x8c], 0x40000
je 0x4ddfe3
push 0
push eax
call fcn.004525a0
add esp, 8
mov eax, dword [ebp + 0xc]
add eax, 0xfffffffc
add eax, dword [ebp + 8]
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, esi
call fcn.004d2a10
add eax, dword [ebp + 8]
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, esi
call fcn.004d29d0
movzx ecx, ax
mov eax, ecx
or eax, dword [ebp + 0x10]
cmp eax, 0x7f
jg 0x4dee9c
test ecx, ecx
je 0x4dee9c
jmp 0x4de040
dec ecx
mov dword [ebp - 0x84], ecx
mov ecx, esi
call fcn.004d29d0
mov ecx, esi
movzx edi, ax
call fcn.004d2a10
push dword [esi + 0x4fa58]
mov dword [ebp - 0x48], eax
call fcn.005960c7
mov ecx, dword [esi + 0x49734]
add eax, 4
add esp, 4
mov dword [ebp - 0x7c], eax
test dword [ecx + 0x8c], 0x40000
je 0x4de14a
push dword [esi + 0x4fa58]
call fcn.005960c7
add esp, 4
mov dword [ebp - 0x74], eax
mov ecx, esi
call fcn.004d2a10
add eax, dword [ebp + 8]
mov ecx, edi
and ecx, 0xc000
mov dword [ebp - 0x58], eax
cmp ecx, 0x4000
jne 0x4de0bc
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff8
mov dword [ebp - 0x58], eax
and edi, 0x3fff
mov dword [ebp - 0x50], edi
cmp edi, 0x180e
jg 0x4de788
je 0x4de62e
cmp edi, 0x102a
jg 0x4de5e2
je 0x4de34b
cmp edi, 0x80a
je 0x4de1bd
cmp edi, 0x1029
jne 0x4de137
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
lea eax, [edi + edi]
cmp eax, dword [ebp - 0x48]
jge 0x4de134
mov ecx, esi
call fcn.004d29d0
mov ecx, dword [ebp - 0x70]
cmp edi, 1
movzx eax, ax
cmove ecx, eax
inc edi
mov dword [ebp - 0x70], ecx
cmp edi, 4
jl 0x4de110
mov edi, dword [ebp - 0x50]
push 0
push dword [ebp - 0x74]
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
push 0
mov ecx, esi
call fcn.004d2a10
add eax, dword [ebp + 8]
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
mov eax, edi
add esp, 0xc
sar eax, 8
add eax, 8
or eax, 8
cmp eax, 0x38
jne 0x4de193
mov eax, dword [ebp + 0x10]
inc eax
push eax
push dword [ebp - 0x48]
push dword [esi + 0x4fa58]
call fcn.005960c7
add esp, 4
mov ecx, esi
push eax
call fcn.004ddf90
cmp edi, 0x810
jne 0x4de7dd
push dword [esi + 0x4fa58]
lea eax, [esi + 0x2d1]
push 1
push 0x40
push eax
call fcn.00595b79
add esp, 0x10
jmp 0x4dedec
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
push dword [esi + 0x4fa58]
lea edi, [esi + 0x211]
push 1
push 0x40
push edi
call fcn.00595b79
mov ecx, edi
add esp, 0x1c
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de1f0
mov eax, dword [ebp - 0x58]
sub ecx, edx
inc eax
push 0
add eax, ecx
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
push dword [esi + 0x4fa58]
lea eax, [esi + 0x251]
push 1
push 0x40
push eax
mov dword [ebp - 0x4c], eax
call fcn.00595b79
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 0x20
mov dword [ebp - 0x58], edx
test edx, edx
je 0x4de2b1
mov ecx, edi
mov dword [edx], 0x2010f
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x60], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de252
sub ecx, dword [ebp - 0x60]
lea eax, [ecx + 1]
mov ecx, edi
mov dword [edx + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de267
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.00593e38
mov edx, eax
mov ecx, edi
mov eax, dword [ebp - 0x58]
add esp, 4
mov dword [eax + 0x14], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x60], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de290
sub ecx, dword [ebp - 0x60]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + 0x10], eax
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x4de2a3
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 4
mov dword [ebp - 0x58], edx
test edx, edx
je 0x4de134
mov edi, dword [ebp - 0x4c]
mov ecx, edi
mov dword [edx], 0x20110
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x4c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de2e4
sub ecx, dword [ebp - 0x4c]
lea eax, [ecx + 1]
mov ecx, edi
mov dword [edx + 8], eax
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de300
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.00593e38
mov edx, eax
mov ecx, edi
mov eax, dword [ebp - 0x58]
add esp, 4
mov dword [eax + 0x14], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x4c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de325
sub ecx, dword [ebp - 0x4c]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + 0x10], eax
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x4de338
jmp 0x4de134
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x58], edi
lea eax, [edi + edi]
cmp eax, dword [ebp - 0x48]
jge 0x4de134
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
mov dword [ebp - 0x60], eax
cmp edi, 2
jne 0x4de407
push dword [esi + 0x49734]
call fcn.004525d0
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x4de5d0
push dword [ebp - 0x60]
mov dword [eax], 0x48827
mov dword [eax + 4], edi
mov dword [eax + 8], 1
call fcn.004c8a20
movsd xmm0, qword [0x5c3640]
add esp, 4
fstp qword [ebp - 0x5c]
call fcn.00594730
movsd qword [ebp - 0x64], xmm0
fld qword [ebp - 0x64]
fmul qword [ebp - 0x5c]
fstp qword [ebp - 0x64]
movsd xmm0, qword [ebp - 0x64]
call fcn.00594460
mulsd xmm0, qword [0x5c3680]
mulsd xmm0, qword [0x5c3618]
addsd xmm0, qword [0x5c3638]
call fcn.00597301
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 0xc], eax
jmp 0x4de5d0
cmp edi, 0x15
jne 0x4de4b8
push dword [esi + 0x49734]
call fcn.004525d0
add esp, 4
mov dword [ebp - 0x58], eax
test eax, eax
je 0x4de5d0
push 8
mov dword [eax], 0x5829d
mov dword [eax + 4], 2
mov dword [eax + 8], 1
call fcn.00593e38
mov ecx, dword [ebp - 0x58]
push dword [ebp - 0x60]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], 8
call fcn.004c8a20
movsd xmm0, qword [0x5c3640]
add esp, 8
fstp dword [ebp - 0x4c]
call fcn.00594730
movss xmm1, dword [ebp - 0x4c]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
mulsd xmm0, qword [0x5c3638]
call fcn.00594460
mulsd xmm0, qword [0x5c3680]
call fcn.00597301
push eax
call fcn.0045c6c0
mov ecx, dword [ebp - 0x58]
push 0x64
mov ecx, dword [ecx + 0x14]
mov dword [ecx], eax
call fcn.0045c6c0
mov ecx, dword [ebp - 0x58]
add esp, 8
mov ecx, dword [ecx + 0x14]
mov dword [ecx + 4], eax
jmp 0x4de5d0
cmp edi, 0x16
jne 0x4de5d0
push eax
call fcn.004c8a20
push dword [esi + 0x49734]
fstp dword [ebp - 0x4c]
call fcn.004525d0
movss xmm0, dword [ebp - 0x4c]
mov edi, eax
add esp, 8
movss dword [ebp - 0x60], xmm0
test edi, edi
je 0x4de561
push 8
mov dword [edi], 0x5829a
mov dword [edi + 4], 2
mov dword [edi + 8], 1
call fcn.00593e38
movsd xmm0, qword [0x5c3640]
add esp, 4
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], 8
call fcn.00594730
movss xmm1, dword [ebp - 0x60]
xorps xmm1, xmmword [0x5d9110]
cvtss2sd xmm1, xmm1
mulsd xmm0, xmm1
call fcn.00594460
mulsd xmm0, qword [0x5e9220]
call fcn.00597301
push eax
call fcn.0045c6c0
mov ecx, dword [edi + 0x14]
push 0x186a0
mov dword [ecx], eax
call fcn.0045c6c0
mov ecx, dword [edi + 0x14]
add esp, 8
mov dword [ecx + 4], eax
push dword [esi + 0x49734]
call fcn.004525d0
mov edi, eax
add esp, 4
test edi, edi
je 0x4de5cd
push 8
mov dword [edi], 0x59201
mov dword [edi + 4], 2
mov dword [edi + 8], 1
call fcn.00593e38
movss xmm0, dword [ebp - 0x60]
add esp, 4
mulss xmm0, dword [0x5e9270]
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], 8
call fcn.00597120
push eax
call fcn.0045c6c0
mov ecx, dword [edi + 0x14]
push 0x186a0
mov dword [ecx], eax
call fcn.0045c6c0
mov ecx, dword [edi + 0x14]
add esp, 8
mov dword [ecx + 4], eax
mov edi, dword [ebp - 0x58]
inc edi
mov dword [ebp - 0x58], edi
cmp edi, 0x1d
jl 0x4de361
jmp 0x4de134
cmp edi, 0x102d
jne 0x4de137
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
lea eax, [edi + edi]
cmp eax, dword [ebp - 0x48]
jge 0x4de134
mov ecx, esi
call fcn.004d29d0
mov ecx, dword [ebp - 0x6c]
cmp edi, 0x19
movzx eax, ax
cmove ecx, eax
inc edi
mov dword [ebp - 0x6c], ecx
cmp edi, 0x1d
jl 0x4de601
jmp 0x4de134
push 0
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, esi
call fcn.004d2a10
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
mov dword [ebp - 0x88], 0
call fcn.00599811
push dword [eax]
mov ecx, dword [eax + 0x10]
push dword [eax + 4]
inc ecx
push dword [eax + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push ecx
add eax, 0x76c
push eax
lea eax, [ebp - 0x44]
push str._04d:_02d:_02d__02d:_02d:_02d
push eax
call fcn.005933b1
push dword [esi + 0x49734]
call fcn.004525d0
mov edi, eax
add esp, 0x28
test edi, edi
je 0x4de703
lea ecx, [ebp - 0x44]
mov dword [edi], 0x20132
mov dword [edi + 4], 2
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de6b0
sub ecx, edx
lea eax, [ecx + 1]
lea ecx, [ebp - 0x44]
mov dword [edi + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de6c5
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.00593e38
add esp, 4
mov dword [edi + 0x14], eax
lea edx, [ebp - 0x44]
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4de6e0
lea ecx, [ebp - 0x44]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de6f4
sub ecx, edx
lea eax, [ecx + 1]
mov dword [edi + 0x10], eax
push dword [esi + 0x49734]
call fcn.004525d0
mov edi, eax
add esp, 4
test edi, edi
je 0x4de134
lea ecx, [ebp - 0x44]
mov dword [edi], 0x29003
mov dword [edi + 4], 2
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de730
sub ecx, edx
lea eax, [ecx + 1]
lea ecx, [ebp - 0x44]
mov dword [edi + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de745
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.00593e38
add esp, 4
mov dword [edi + 0x14], eax
lea edx, [ebp - 0x44]
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4de760
lea ecx, [ebp - 0x44]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4de774
sub ecx, edx
lea eax, [ecx + 1]
mov dword [edi + 0x10], eax
jmp 0x4de134
mov ecx, edi
sub ecx, 0x1810
je 0x4de7b7
sub ecx, 0x7f7
je 0x4de7ac
dec ecx
jne 0x4de137
mov dword [esi + 0x44710], eax
jmp 0x4de137
mov dword [esi + 0x44714], eax
jmp 0x4de137
push 0
add eax, 0xc
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov ecx, esi
call fcn.004d2a10
mov dword [esi + 0x245d4], eax
jmp 0x4de137
cmp edi, 0x80a
jne 0x4de839
push dword [esi + 0x4fa58]
lea edi, [esi + 0x211]
push 1
push 0x40
push edi
call fcn.00595b79
add esp, 0x10
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4de801
sub edi, ecx
push 1
lea eax, [edi - 0x3f]
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
push dword [esi + 0x4fa58]
lea eax, [esi + 0x251]
push 1
push 0x40
push eax
call fcn.00595b79
add esp, 0x1c
jmp 0x4dedec
cmp edi, 0x1810
jne 0x4de884
mov ecx, esi
call fcn.004d2a10
mov ecx, esi
mov word [esi + 0x44aa], ax
call fcn.004d2a10
mov ecx, esi
mov word [esi + 0x44a8], ax
call fcn.004d2a10
push eax
mov ecx, esi
call fcn.004d8670
mov ecx, esi
fstp qword [esi + 0x245e0]
call fcn.004d2a10
mov dword [esi + 0x245d4], eax
jmp 0x4dedec
cmp edi, 0x1835
jne 0x4de89e
mov ecx, esi
call fcn.004d2a10
mov dword [esi + 0x3d4], eax
jmp 0x4dedec
cmp edi, 0x2007
jne 0x4de8c8
push dword [esi + 0x4fa58]
call fcn.005960c7
mov dword [esi + 0x39c], eax
add esp, 4
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x3a8], eax
jmp 0x4dedec
cmp edi, 0x1818
jne 0x4de951
mov ecx, esi
call fcn.004d2a10
mov ecx, esi
call fcn.004d2a10
push eax
mov ecx, esi
call fcn.004d8670
fstp dword [ebp - 0x74]
movss xmm0, dword [ebp - 0x74]
xorps xmm0, xmmword [0x5d9110]
cvtss2sd xmm1, xmm0
movsd xmm0, qword [0x5c3640]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
mov ecx, esi
movss dword [esi + 0x368], xmm0
call fcn.004d2a10
push eax
mov ecx, esi
call fcn.004d8670
fmul dword [0x62d3b0]
movsd xmm0, qword [0x5c3640]
fstp qword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x78]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x36c], xmm0
jmp 0x4dedec
cmp edi, 0x102a
jne 0x4dea84
mov ecx, esi
call fcn.004d2a10
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2pd xmm1, xmm0
movsd xmm0, qword [0x5c3640]
mulsd xmm1, qword [0x5c3618]
subsd xmm1, qword [0x5d70b8]
call fcn.005949c0
mulsd xmm0, qword [0x5e91e0]
mov ecx, esi
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x364], xmm0
call fcn.004d29d0
mov ecx, esi
call fcn.004d29d0
cwde
movd xmm0, eax
cvtdq2pd xmm1, xmm0
movsd xmm0, qword [0x5c3640]
mulsd xmm1, qword [0x5e9090]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
mov ecx, esi
movss dword [esi + 0x36c], xmm0
call fcn.004d29d0
cwde
neg eax
movd xmm0, eax
cvtdq2pd xmm1, xmm0
movsd xmm0, qword [0x5c3640]
mulsd xmm1, qword [0x5c3618]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
mov ecx, esi
movss dword [esi + 0x368], xmm0
call fcn.004d29d0
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
xor ecx, ecx
push 1
cmp eax, 0x11
push 0x20
push dword [esi + 0x4fa58]
cmovg eax, ecx
mov dword [ebp - 0x54], eax
call fcn.00595cb4
movss xmm0, dword [esi + 0x368]
add esp, 0xc
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x5e9228]
jbe 0x4dedec
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x5c3668]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x368], xmm0
jmp 0x4dedec
cmp edi, 0x102c
jne 0x4deb1f
mov ecx, esi
call fcn.004d29d0
mov ecx, 0x200
push 1
cmp ax, cx
jbe 0x4deadf
push 0x76
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
mov eax, edi
cvtdq2ps xmm0, xmm0
xor eax, 2
inc edi
movss dword [esi + eax*4 + 0x24644], xmm0
cmp edi, 4
jl 0x4deab5
jmp 0x4dedec
push 0x62
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
mov eax, edi
xor eax, 2
sar eax, 1
cvtdq2ps xmm0, xmm0
xor eax, edi
inc edi
movss dword [esi + eax*4 + 0x24644], xmm0
cmp edi, 4
jl 0x4deaf1
jmp 0x4dedec
cmp edi, 0x32
jne 0x4dec64
cmp dword [ebp - 0x48], 0x300
jne 0x4deb95
push 1
push 0x48
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
mov ecx, esi
call fcn.004d29d0
movsd xmm1, qword [0x5d4e98]
movzx eax, ax
movd xmm0, eax
mov eax, edi
cvtdq2pd xmm0, xmm0
sar eax, 1
xor eax, edi
inc edi
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esi + eax*4 + 0x24644], xmm0
cmp edi, 4
jl 0x4deb45
cmp dword [ebp - 0x54], 0
jne 0x4dedec
mov dword [esi + 0x24644], 0xbf800000
jmp 0x4dedec
movss xmm0, dword [esi + 0x24644]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4dedec
mov ecx, esi
call fcn.004d29d0
cmp ax, word [ebp - 0x80]
jne 0x4debe9
lea eax, [esi + 0x251]
push 0x5e02d8
push eax
call fcn.00596770
add esp, 8
mov ecx, str.012346000000000000
test eax, eax
mov eax, str.01345:000000006008
cmove ecx, eax
mov eax, dword [ebp - 0x54]
movsx eax, byte [ecx + eax]
sub eax, 0x2e
jmp 0x4debfe
mov eax, dword [ebp - 0x54]
movsx eax, byte [eax + str.023457000000006000]
sub eax, 0x30
xor ecx, ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x80], ecx
push 1
lea eax, [eax*8 + 0x4e]
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
mov ecx, esi
call fcn.004d29d0
mov ecx, edi
and ecx, 1
xor ax, word [ebp + ecx*2 - 0x68]
movzx eax, ax
movd xmm0, eax
mov eax, edi
xor eax, 2
sar eax, 1
cvtdq2ps xmm0, xmm0
xor eax, edi
inc edi
movss dword [esi + eax*4 + 0x24644], xmm0
cmp edi, 4
jl 0x4dec18
cmp dword [ebp - 0x54], 0
jne 0x4dedec
mov dword [esi + 0x24644], 0xbf800000
jmp 0x4dedec
cmp edi, 0x10a9
jne 0x4deccb
cmp dword [ebp - 0x48], 0x42
mov eax, dword [ebp - 0x54]
jle 0x4dec82
movsx eax, byte [eax + str.0134567028]
sub eax, 0x30
mov dword [ebp - 0x54], eax
push 1
lea eax, [eax*8 + 2]
push eax
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
xor edi, edi
lea esp, [esp]
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
mov eax, edi
sar eax, 1
cvtdq2ps xmm0, xmm0
xor eax, edi
inc edi
movss dword [esi + eax*4 + 0x24644], xmm0
cmp edi, 4
jl 0x4deca0
jmp 0x4dedec
cmp edi, 0x1030
jne 0x4decf1
mov ecx, dword [ebp - 0x54]
mov eax, 0x18040
sar eax, cl
test al, 1
je 0x4dedec
mov ecx, esi
call fcn.004cc7d0
jmp 0x4dedec
cmp edi, 0x1031
jne 0x4ded21
mov ecx, esi
call fcn.004d29d0
mov ecx, esi
call fcn.004d29d0
mov ecx, esi
mov word [esi + 0x44a6], ax
call fcn.004d29d0
mov word [esi + 0x44a4], ax
jmp 0x4dedec
cmp edi, 0x5029
jne 0x4ded5f
mov ecx, dword [ebp - 0x48]
mov eax, ecx
sar eax, 0x10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x370], xmm0
cmp cx, 2
jne 0x4dedec
mulss xmm0, dword [0x5e9068]
movss dword [esi + 0x370], xmm0
jmp 0x4dedec
cmp edi, 0x5813
jne 0x4ded79
push dword [ebp - 0x48]
mov ecx, esi
call fcn.004d8670
fstp dword [esi + 0x35c]
jmp 0x4dedec
cmp edi, 0x5814
jne 0x4ded93
push dword [ebp - 0x48]
mov ecx, esi
call fcn.004d8670
fstp dword [esi + 0x360]
jmp 0x4dedec
cmp edi, 0x5817
jne 0x4deda6
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x380], eax
jmp 0x4dedec
cmp edi, 0x5834
jne 0x4dedb9
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x390], eax
jmp 0x4dedec
cmp edi, 0x580e
jne 0x4dedcd
mov eax, dword [ebp - 0x48]
cdq
mov dword [esi + 0x37c], edx
jmp 0x4dede6
cmp edi, 0x180e
jne 0x4dedec
mov ecx, esi
call fcn.004d2a10
mov dword [esi + 0x37c], 0
mov dword [esi + 0x378], eax
push 0
push dword [ebp - 0x7c]
push dword [esi + 0x4fa58]
call fcn.00595cb4
mov ecx, dword [ebp - 0x84]
add esp, 0xc
test ecx, ecx
jne 0x4de040
mov edi, dword [ebp - 0x70]
test edi, edi
jle 0x4dee9c
push dword [esi + 0x49734]
call fcn.004525d0
mov esi, eax
add esp, 4
test esi, esi
je 0x4dee9c
cmp dword [ebp - 0x6c], 0
mov eax, 0x920a
mov word [esi], ax
mov dword [esi + 4], 2
mov dword [esi + 8], 1
jle 0x4dee90
mov eax, 5
push 8
mov word [esi + 2], ax
call fcn.00593e38
push edi
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], 8
call fcn.0045c6c0
mov ecx, dword [esi + 0x14]
push dword [ebp - 0x6c]
mov dword [ecx], eax
call fcn.0045c6c0
mov ecx, dword [esi + 0x14]
add esp, 0xc
pop edi
mov dword [ecx + 4], eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret 0xc
mov eax, 4
mov dword [esi + 0xc], edi
mov word [esi + 2], ax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.005920c1
mov esp, ebp
pop ebp
ret 0xc