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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4da647
push eax
mov eax, 0x19f4
mov dword fs:[0], esp
call fcn.004d75c0
cmp word [ecx + 0x96], 0xffff
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x20], ecx
je 0x4a745b
mov dx, word [0x655e8a]
mov ebp, dword [esp + 0x1a14]
and edx, 0x200
xor edi, edi
mov eax, dword [ebp + 0x14]
mov ebx, dword [sym.imp.USER32.dll_LoadStringA]
neg edx
sbb edx, edx
lea ecx, [esp + 0x804]
and edx, 0x248
mov dword [esp + 0x80], eax
mov eax, dword [0x655ff8]
push 0x200
add edx, 0x1d1a
push ecx
push edx
push eax
mov byte [esp + 0x334], 0
mov dword [esp + 0x8c], 0x4c
mov dword [esp + 0x94], eax
call ebx
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea eax, [esp + 0x804]
push 0x5016a4
push eax
call esi
add esp, 8
cmp eax, edi
je 0x4a55db
mov byte [eax], 0
inc eax
push 0x5016a4
push eax
call esi
add esp, 8
cmp eax, edi
jne 0x4a55c8
mov edx, dword [0x506a74]
lea ecx, [esp + 0x804]
mov dword [esp + 0x88], ecx
and edx, 0xffff
lea ecx, [esp + 0x504]
mov dword [esp + 0x94], edx
mov edx, dword [0x655ff8]
push 0x100
push ecx
lea eax, [esp + 0x32c]
push 0x1f63
push edx
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], 0x100
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
call ebx
lea ecx, [esp + 0x7c]
lea eax, [esp + 0x504]
push ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 0x81834
mov dword [esp + 0xc4], 0x41b3d0
mov word [esp + 0xb8], di
mov word [esp + 0xba], di
mov dword [esp + 0xbc], 0x506f98
mov dword [esp + 0xc0], 0x4e23
mov dword [esp + 0xc8], edi
call sub.comdlg32.dll_GetOpenFileNameA
test eax, eax
jne 0x4a56c5
call sub.comdlg32.dll_CommDlgExtendedError
push eax
call fcn.004d4d20
add esp, 4
jmp 0x4a745b
push 0x4e23
push 1
lea edx, [esp + 0x114]
push 0x5038c4
lea eax, [esp + 0x430]
push edx
lea ecx, [esp + 0x510]
push eax
lea edx, [esp + 0x338]
push ecx
push edx
call fcn.00424c30
mov esi, dword [sym.imp.KERNEL32.dll__lclose]
add esp, 0x1c
cmp ax, di
je 0x4a5721
cmp ax, 0x520f
je 0x4a5a11
lea ecx, [esp + 0x324]
and eax, 0xffff
push ecx
push eax
jmp 0x4a7453
test dword [esp + 0x424], 0x40000000
jne 0x4a5922
push 0
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_COleStreamFile::COleStreamFile
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x11c]
mov dword [esp + 0x1a18], 0
call fcn.00445500
mov eax, dword [str.InPage100]
mov ecx, dword [esp + 0x500]
lea edx, [esp + 0x110]
mov byte [esp + 0x1a0c], 1
push edx
push 0x10
push eax
push ecx
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_COleStreamFile::OpenStream
mov edx, dword [esp + 0x424]
push 0
and edx, 0xfffffff
lea ecx, [esp + 0x3c]
sub edx, 0x10005
neg edx
sbb edx, edx
and edx, 0xfffffffc
add edx, 0xd4
push edx
call sub.MFC42.DLL_COleStreamFile::Seek
push 1
push 0
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_COleStreamFile::Seek
push 2
push 0
lea ecx, [esp + 0x40]
mov edi, eax
call sub.MFC42.DLL_COleStreamFile::Seek
push 0
push edi
lea ecx, [esp + 0x40]
mov esi, eax
call sub.MFC42.DLL_COleStreamFile::Seek
xor edi, edi
lea eax, [esp + 0x38]
push edi
push 0x1000
push 1
push eax
lea ecx, [esp + 0xd8]
call sub.MFC42.DLL_CArchive::CArchive
cmp esi, 0x7530
mov byte [esp + 0x1a0c], 2
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], edi
jle 0x4a583a
mov edx, dword [0x655ff8]
lea ecx, [esp + 0x124]
push 0x100
push ecx
push 0x18d8
push edx
call ebx
lea eax, [esp + 0x124]
push 1
push eax
push esi
jmp 0x4a5840
push 0
push 0
push 0xffffffffffffffff
call fcn.004ce9e0
mov eax, dword [esp + 0x454]
add esp, 0xc
lea ecx, [esp + 0xc8]
lea edx, [esp + 0x38]
mov dword [esp + 0x6c], ecx
push 0
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x70], edx
call sub.MFC42.DLL_COleStreamFile::Seek
mov ecx, dword [esp + 0x424]
mov esi, dword [ebp + 0x2bc]
mov dword [ebp + 0x2bc], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x130]
test eax, eax
je 0x4a5897
mov eax, dword [ecx + 0x5ee]
jmp 0x4a5899
mov eax, ebp
lea edx, [esp + 0x68]
push edx
push 0x440ed0
push 0
push eax
call fcn.004a5010
mov dword [ebp + 0x2bc], esi
call fcn.004ceb00
lea ecx, [esp + 0xc8]
call sub.MFC42.DLL_CArchive::Close
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_COleStreamFile::Flush
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_COleStreamFile::Close
mov eax, dword [esp + 0x500]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea ecx, [esp + 0xc8]
mov byte [esp + 0x1a0c], 1
call fcn.004d7e8a
lea ecx, [esp + 0x110]
mov byte [esp + 0x1a0c], 0
call fcn.004455c0
lea ecx, [esp + 0x38]
mov dword [esp + 0x1a0c], 0xffffffff
call fcn.004d7e9c
jmp 0x4a745b
lea edx, [esp + 0x124]
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x328]
push eax
push ecx
call fcn.004a52d0
add esp, 0xc
cmp ax, di
je 0x4a5969
cmp ax, 0x520f
je 0x4a5a11
lea edx, [esp + 0x324]
and eax, 0xffff
push edx
push eax
call fcn.00454b50
add esp, 8
jmp 0x4a5a11
test byte [esp + 0x128], 2
je 0x4a5a0a
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll__llseek]
push edi
push eax
push ecx
call esi
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
and edx, 0xffff
push edx
push 0x4a4fd0
push edi
push ebp
call fcn.004a5010
cmp ax, di
je 0x4a59cb
and eax, 0xffff
push eax
call fcn.00454b50
mov ecx, dword [esp + 0x28]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll__lclose]
jmp 0x4a745b
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x24]
push edi
push eax
push ecx
call esi
mov edx, dword [esp + 0x24]
mov eax, dword [0x6559e0]
and edx, 0xffff
push edx
push 0x4a4fd0
push ebp
call dword [eax + 0x500]
mov ecx, dword [esp + 0x30]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll__lclose]
jmp 0x4a745b
mov edx, dword [esp + 0x24]
push edx
call esi
lea eax, [esp + 0x324]
push edi
push eax
lea ecx, [esp + 0x70]
call sub.MFC42.DLL_CStdioFile::CStdioFile
lea ecx, [esp + 0x10]
mov dword [esp + 0x1a0c], 3
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x1a0c], 4
push ecx
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CStdioFile::ReadString
lea edx, [esp + 0x10]
push str.__Quranic_Text___
push edx
call fcn.004a8020
test al, al
je 0x4a5c02
lea eax, [esp + 0x10]
lea ecx, [esp + 0x68]
push eax
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
je 0x4a5bc1
mov ebp, dword [sym.imp.MSVCRT.dll_sscanf]
mov bl, 8
lea ecx, [esp + 0xf4]
lea edx, [esp + 0x64]
push ecx
lea eax, [esp + 0xf4]
push edx
lea ecx, [esp + 0x68]
push eax
lea edx, [esp + 0xf8]
push ecx
lea eax, [esp + 0x6c]
push edx
lea ecx, [esp + 0xfc]
push eax
lea edx, [esp + 0x70]
push ecx
lea eax, [esp + 0x100]
push edx
lea ecx, [esp + 0x74]
push eax
lea edx, [esp + 0x104]
push ecx
lea eax, [esp + 0x78]
push edx
lea ecx, [esp + 0x108]
push eax
lea edx, [esp + 0x7c]
push ecx
lea eax, [esp + 0x10c]
push edx
lea ecx, [esp + 0x80]
push eax
lea edx, [esp + 0x110]
push ecx
lea eax, [esp + 0x84]
push edx
lea ecx, [esp + 0x114]
push eax
lea edx, [esp + 0x88]
push ecx
lea eax, [esp + 0x118]
push edx
lea ecx, [esp + 0x8c]
push eax
lea edx, [esp + 0x11c]
push ecx
lea eax, [esp + 0x90]
push edx
push eax
push str._d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d
lea ecx, [esp + 0x74]
call fcn.00417690
push eax
call ebp
cdq
sub eax, edx
add esp, 0x68
mov edi, eax
xor esi, esi
sar edi, 1
test edi, edi
jle 0x4a5b87
mov cl, byte [esp + esi*4 + 0x38]
mov dl, byte [esp + esi*4 + 0xc8]
add cl, 0x80
push 4
mov byte [esp + 0x31], cl
mov ecx, dword [esp + 0x1a18]
lea eax, [esp + 0x30]
push 3
push eax
push ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3e], dl
call fcn.0048d240
inc esi
cmp esi, edi
jl 0x4a5b4e
mov eax, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 4
lea edx, [esp + 0x30]
push 2
push edx
push eax
mov byte [esp + 0x3c], 4
mov byte [esp + 0x3d], 0x20
call fcn.0048d240
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CStdioFile::ReadString
test eax, eax
jne 0x4a5a82
mov edx, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 3
push 0
push 0
push edx
call fcn.0048d240
lea ecx, [esp + 0x10]
mov byte [esp + 0x1a0c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x68]
mov dword [esp + 0x1a0c], 0xffffffff
call fcn.004d85ce
jmp 0x4a745b
lea ecx, [esp + 0x10]
mov byte [esp + 0x1a0c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x68]
mov dword [esp + 0x1a0c], 0xffffffff
call fcn.004d85ce
xor ebx, ebx
lea eax, [esp + 0x324]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x24], edi
je 0x4a7446
push ebx
push ebx
push 0xffffffffffffffff
call fcn.004ce9e0
mov ecx, dword [esp + 0xa0]
add esp, 0xc
lea eax, [ecx - 1]
cmp eax, 0xa
ja case.0x4a5c66.3
jmp dword [eax*4 + 0x4a7478]
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push edi
push ebp
call fcn.004a4f20
jmp case.0x4a5c66.3
mov ebx, dword [sym.imp.KERNEL32.dll__hread]
lea edx, [esp + 0x124]
push 0x200
push edx
push edi
call ebx
mov esi, eax
test esi, esi
jle case.0x4a5c66.3
push 0xffffffffffffffff
call fcn.004ceb90
add esp, 4
xor ecx, ecx
test esi, esi
jle 0x4a5cd0
movsx eax, byte [esp + ecx + 0x124]
cmp eax, 0x80
jl 0x4a5ccb
mov al, byte [eax + 0x506874]
mov byte [esp + ecx + 0x124], al
inc ecx
cmp ecx, esi
jl 0x4a5caf
push 4
lea ecx, [esp + 0x128]
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push ebp
call fcn.0048d240
jmp 0x4a5c85
push edi
call esi
lea edx, [esp + 0x324]
push 0x506f34
push edx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x9c]
add esp, 8
cmp eax, 8
jne 0x4a5dfa
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
push 0x506f30
push str.tempout.sk
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebp, eax
add esp, 0xc
test ebp, ebp
je case.0x4a5c66.3
lea ecx, [esp + 0x324]
push 0x506f20
push ecx
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
mov edi, eax
push edi
push 0x200
lea edx, [esp + 0x134]
push 1
push edx
call ebx
mov esi, eax
add esp, 0x18
test esi, esi
je 0x4a5dcb
xor eax, eax
test esi, esi
jle 0x4a5d92
mov cl, byte [esp + eax + 0x124]
xor cl, 0x78
mov byte [esp + eax + 0x124], cl
inc eax
cmp eax, esi
jl 0x4a5d7c
push ebp
push esi
lea eax, [esp + 0x12c]
push 1
push eax
call dword [sym.imp.MSVCRT.dll_fwrite]
add esp, 0x10
cmp eax, esi
jb 0x4a5dc8
push edi
push 0x200
lea ecx, [esp + 0x12c]
push 1
push ecx
call ebx
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4a5d76
jmp 0x4a5dcb
or esi, 0xffffffff
mov ebx, dword [sym.imp.MSVCRT.dll_fclose]
push ebp
call ebx
push edi
call ebx
add esp, 8
cmp esi, 0xffffffff
je case.0x4a5c66.3
push 0x506f34
push str.tempout.sk
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x124]
push esi
push 0x100
push edx
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4a63fd
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp byte [esp + ebp + 0x123], 0xa
jne 0x4a5e3b
dec ebp
xor eax, eax
xor esi, esi
test ebp, ebp
mov byte [esp + ebp + 0x124], 0x81
jl 0x4a5e90
mov cl, byte [esp + esi + 0x124]
lea edx, [esp + esi + 0x124]
cmp cl, 0x80
jae 0x4a5e6f
test eax, eax
jne 0x4a5e8b
cmp cl, 0x20
jne 0x4a5e6b
mov byte [edx], al
jmp 0x4a5e8b
mov eax, edx
jmp 0x4a5e8b
test eax, eax
je 0x4a5e8b
lea ecx, [edx - 1]
dec edx
cmp eax, edx
jae 0x4a5e89
mov bl, byte [ecx]
mov dl, byte [eax]
mov byte [eax], bl
mov byte [ecx], dl
inc eax
dec ecx
cmp eax, ecx
jb 0x4a5e7b
xor eax, eax
inc esi
cmp esi, ebp
jle 0x4a5e4b
push 0xffffffffffffffff
call fcn.004ceb90
add esp, 4
xor ebx, ebx
test ebp, ebp
jle 0x4a610d
lea eax, [esp + 0x125]
lea edi, [esp + 0x124]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 1
mov al, byte [edi]
mov ecx, eax
and ecx, 0xff
cmp ecx, 0xf2
ja case.0x4a5edc.65
xor edx, edx
mov dl, byte [ecx + 0x4a75ac]
jmp dword [edx*4 + 0x4a74a4]
mov ebp, ebx
jmp case.0x4a5edc.65
mov esi, dword [esp + 0x10]
cmp al, 0x5b
setne al
dec eax
and eax, 0x5b
add eax, 2
cmp esi, ebp
jge case.0x4a5edc.65
cmp byte [esp + esi + 0x124], al
je 0x4a5f15
inc esi
cmp esi, ebp
jl 0x4a5f02
jmp case.0x4a5edc.65
cmp esi, dword [esp + 0x10]
jne 0x4a5f39
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov byte [edi], 0xd
inc ebx
mov byte [eax], 0xa
inc edx
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
jmp 0x4a60f0
mov eax, ebp
lea ecx, [esp + esi + 0x125]
sub eax, esi
dec eax
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
mov ecx, dword [esp + 0x20]
mov edx, ebx
sub edx, esi
add esp, 0xc
dec ebx
lea ebp, [edx + ebp - 1]
mov edx, dword [esp + 0x10]
dec edx
dec ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
dec edi
jmp case.0x4a5edc.65
mov byte [edi], 0x20
jmp case.0x4a5edc.65
mov al, 0x20
jmp 0x4a60c7
mov al, 0xf6
jmp 0x4a60c7
mov al, 0xd0
jmp 0x4a60c7
mov al, 0xd1
jmp 0x4a60c7
mov al, 0xd2
jmp 0x4a60c7
mov al, 0xd3
jmp 0x4a60c7
mov al, 0xd4
jmp 0x4a60c7
mov al, 0xd5
jmp 0x4a60c7
mov al, 0xd6
jmp 0x4a60c7
mov al, 0xd7
jmp 0x4a60c7
mov al, 0xd8
jmp 0x4a60c7
mov al, 0xd9
jmp 0x4a60c7
mov al, pe_nt_image_headers32
jmp 0x4a60c7
mov al, 0xe6
jmp 0x4a60c7
mov al, 0xf2
jmp 0x4a60c7
mov al, 0x81
jmp 0x4a60c7
mov al, 0x82
jmp 0x4a60c7
mov al, 0x83
jmp 0x4a60c7
mov al, 0x84
jmp 0x4a60c7
mov al, 0x85
jmp 0x4a60c7
mov al, 0x86
jmp 0x4a60c7
mov al, 0x87
jmp 0x4a60c7
mov al, 0x88
jmp 0x4a60c7
mov al, 0x89
jmp 0x4a60c7
mov al, 0x8a
jmp 0x4a60c7
mov al, 0x8b
jmp 0x4a60c7
mov al, 0x8c
jmp 0x4a60c7
mov al, 0x8d
jmp 0x4a60c7
mov al, 0x8e
jmp 0x4a60c7
mov al, 0x8f
jmp 0x4a60c7
mov al, 0x90
jmp 0x4a60c7
mov al, 0x91
jmp 0x4a60c7
mov al, 0x92
jmp 0x4a60c7
mov al, 0x93
jmp 0x4a60c7
mov al, 0x94
jmp 0x4a60c7
mov al, 0x95
jmp 0x4a60c7
mov al, 0x96
jmp 0x4a60c7
mov al, 0x97
jmp 0x4a60c7
mov al, 0x98
jmp 0x4a60c7
mov al, 0x99
jmp 0x4a60c7
mov al, 0x9a
jmp 0x4a60c7
mov al, 0x9c
jmp 0x4a60c7
mov al, 0x9b
jmp 0x4a60c7
mov al, 0x9e
jmp 0x4a60c7
mov al, 0x9f
jmp 0x4a60c7
mov al, 0xa0
jmp 0x4a60c7
mov al, 0xa2
jmp 0x4a60c7
mov al, 0xa6
jmp 0x4a60c7
mov al, 0xa7
jmp 0x4a60c7
mov al, 0xa3
jmp 0x4a60c7
mov al, 0xb9
jmp 0x4a60c7
mov al, 0xa5
jmp 0x4a60c7
mov al, 0xa4
jmp 0x4a60c7
mov al, 0xc7
jmp 0x4a60c7
mov al, 0xbd
jmp 0x4a60c7
mov al, 0xad
jmp 0x4a60c7
mov al, 0xc8
jmp 0x4a60c7
mov al, 0xa1
jmp 0x4a60c7
mov al, 0x9d
jmp 0x4a60c7
mov al, 0xed
jmp 0x4a60c7
mov al, 0xf3
jmp 0x4a60c7
mov al, 0xfe
mov esi, dword [esp + 0x14]
mov byte [edi], al
mov eax, ebp
sub eax, ebx
push eax
push edi
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
mov edx, dword [esp + 0x1c]
add esp, 0xc
inc ebp
inc ebx
inc edx
inc esi
mov byte [edi], 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
inc edi
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc ebx
inc esi
inc edx
inc edi
cmp ebx, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
jl 0x4a5ebe
mov edx, dword [esp + 0x1a14]
push 4
lea ecx, [esp + 0x128]
push ebp
push ecx
mov ecx, dword [esp + 0x2c]
push edx
call fcn.0048d240
jmp 0x4a5dfa
push edi
call esi
lea eax, [esp + 0x324]
push 0x506f34
push eax
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], 1
push esi
lea ecx, [esp + 0x128]
push 0x100
push ecx
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4a63e0
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
xor edi, edi
test ecx, ecx
mov dword [esp + 0x14], ecx
jle 0x4a63b7
lea esi, [esp + 0x124]
lea ebp, [esp + 0x125]
mov al, byte [esi]
cmp al, 0x30
jb 0x4a61be
cmp al, 0x7f
ja 0x4a61be
inc ebx
inc ebp
mov edi, 1
inc esi
jmp 0x4a63ad
cmp al, 0x20
jne 0x4a61e0
test edi, edi
jne 0x4a61d8
cmp ebx, dword [esp + 0x14]
jge 0x4a61e0
mov cl, byte [ebp]
cmp cl, 0x7f
ja 0x4a61e0
cmp cl, al
jbe 0x4a61e0
inc ebx
inc ebp
inc esi
jmp 0x4a63ad
and eax, 0xff
add eax, 0xfffffff7
cmp eax, 0xe5
ja case.0x4a61fb.67
xor edx, edx
mov dl, byte [eax + 0x4a778c]
jmp dword [edx*4 + 0x4a76a0]
mov eax, dword [esp + 0x14]
mov byte [esi], 0xd
sub eax, ebx
push eax
push esi
push ebp
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [esp + 0x20]
add esp, 0xc
inc eax
mov byte [esi], 0xa
add ebx, 2
add ebp, 2
mov dword [esp + 0x14], eax
add esi, 2
jmp 0x4a63ad
mov al, 0x20
jmp 0x4a62a2
mov al, 0xa7
jmp 0x4a62a2
mov al, 0x82
jmp 0x4a62a2
mov al, 0x88
jmp 0x4a62a2
mov al, 0x8b
jmp 0x4a62a2
mov al, 0xa5
jmp 0x4a62a2
mov al, 0x81
jmp 0x4a62a2
mov al, 0x9d
jmp 0x4a62a2
mov al, 0xa6
jmp 0x4a62a2
mov al, 0x87
jmp 0x4a62a2
mov al, 0x9c
jmp 0x4a62a2
mov al, 0x9e
jmp 0x4a62a2
mov al, 0x9f
jmp 0x4a62a2
mov al, 0xa0
jmp 0x4a62a2
mov al, 0x83
jmp 0x4a62a2
mov al, 0x9a
jmp 0x4a62a2
mov al, 0x8e
jmp 0x4a62a2
mov al, 0x92
jmp 0x4a62a2
mov al, 0x84
jmp 0x4a62a2
mov al, 0xa3
jmp 0x4a62a2
mov ecx, dword [esp + 0x1c]
test ecx, ecx
setne al
add eax, 0xfd
xor edx, edx
test ecx, ecx
sete dl
test al, al
mov dword [esp + 0x1c], edx
je case.0x4a61fb.67
mov edi, dword [esp + 0x14]
mov byte [esi], al
mov eax, edi
sub eax, ebx
push eax
push esi
push ebp
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
inc edi
mov byte [esi], 4
mov dword [esp + 0x14], edi
add ebx, 2
add ebp, 2
add esi, 2
xor edi, edi
jmp 0x4a63ad
mov al, 0x94
jmp 0x4a62a2
mov al, 0x95
jmp 0x4a62a2
mov al, 0xa4
jmp 0x4a62a2
mov al, 0x90
jmp 0x4a62a2
mov al, 0x91
jmp 0x4a62a2
mov al, 0x96
jmp 0x4a62a2
mov al, 0xed
jmp 0x4a62a2
mov al, 0xf3
jmp 0x4a62a2
mov al, 0xa1
jmp 0x4a62a2
mov al, 0xea
jmp 0x4a62a2
mov al, 0x8c
jmp 0x4a62a2
mov al, 0xb3
jmp 0x4a62a2
mov al, 0x89
jmp 0x4a62a2
mov al, 0x8a
jmp 0x4a62a2
mov al, 0xa2
jmp 0x4a62a2
mov al, 0x86
jmp 0x4a62a2
mov al, 0x9b
jmp 0x4a62a2
mov al, 0x8f
jmp 0x4a62a2
mov al, 0x93
jmp 0x4a62a2
mov al, 0x85
jmp 0x4a62a2
mov al, 0x8d
jmp 0x4a62a2
mov al, 0xe9
jmp 0x4a62a2
mov al, 0xe1
jmp 0x4a62a2
mov al, 0xe2
jmp 0x4a62a2
mov al, 0xdf
jmp 0x4a62a2
mov al, 0xb7
jmp 0x4a62a2
mov al, pe_nt_image_headers32
jmp 0x4a62a2
mov al, 0xda
jmp 0x4a62a2
mov al, 0xbd
jmp 0x4a62a2
mov al, 0xad
jmp 0x4a62a2
mov al, 0x97
jmp 0x4a62a2
mov al, 0x98
jmp 0x4a62a2
mov al, 0x99
jmp 0x4a62a2
mov al, 0xee
jmp 0x4a62a2
mov al, 0xb9
jmp 0x4a62a2
mov al, 0xab
jmp 0x4a62a2
mov eax, dword [esp + 0x14]
cmp ebx, eax
jge 0x4a63a9
mov ecx, eax
sub ecx, ebx
dec ecx
push ecx
push ebp
push esi
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
dec dword [esp + 0x14]
cmp ebx, dword [esp + 0x14]
jl 0x4a61a7
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 4
lea eax, [esp + 0x128]
push edx
push eax
push ebp
call fcn.0048d240
mov esi, dword [esp + 0x28]
jmp 0x4a6159
push 4
lea ecx, [esp + 0x14]
push 2
push ecx
mov ecx, dword [esp + 0x2c]
push ebp
mov byte [esp + 0x20], 0xd
mov byte [esp + 0x21], 0xa
call fcn.0048d240
push esi
jmp 0x4a7401
push edi
call esi
lea edx, [esp + 0x324]
push 0x506f34
push edx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
mov dword [esp + 0x18], eax
push eax
lea eax, [esp + 0x130]
push 0x80
push eax
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0x14
test eax, eax
je case.0x4a5c66.3
mov ebp, dword [sym.imp.MSVCRT.dll_memmove]
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push 0x100
push 1
push edx
call dword [sym.imp.MSVCRT.dll_fread]
mov edi, eax
add esp, 0x10
xor esi, esi
mov dword [esp + 0x28], edi
test edi, edi
mov ebx, edi
jle 0x4a66d2
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4a648b
cmp byte [esp + esi + 0x124], 6
jne 0x4a64ea
mov cl, byte [esp + esi + 0x124]
lea eax, [esp + esi + 0x124]
cmp cl, 7
mov edi, esi
je 0x4a64b1
cmp esi, ebx
jge 0x4a64b1
mov cl, byte [esp + esi + 0x125]
inc esi
cmp cl, 7
jne 0x4a64a0
xor ecx, ecx
cmp esi, ebx
setge cl
test ecx, ecx
mov dword [esp + 0x1c], ecx
jne 0x4a66c6
mov ecx, ebx
lea edx, [esp + esi + 0x125]
sub ecx, esi
dec ecx
push ecx
push edx
push eax
call ebp
mov eax, edi
add esp, 0xc
sub eax, esi
mov esi, edi
lea ebx, [ebx + eax - 1]
cmp edi, ebx
jge 0x4a66ce
mov al, byte [esp + esi + 0x124]
lea edi, [esp + esi + 0x124]
cmp al, 0x21
jl 0x4a652b
cmp al, 0x42
jg 0x4a652b
add al, 0x60
test al, al
je case.0x4a6542.60
mov ecx, ebx
lea edx, [esp + esi + 0x125]
sub ecx, esi
mov byte [edi], al
push ecx
push edi
push edx
call ebp
add esp, 0xc
inc ebx
mov byte [edi], 4
add esi, 2
jmp 0x4a66c6
movsx eax, al
add eax, 0xfffffff6
cmp eax, 0x6b
ja case.0x4a6542.60
xor ecx, ecx
mov cl, byte [eax + 0x4a7940]
jmp dword [ecx*4 + 0x4a7874]
mov edx, ebx
lea eax, [esp + esi + 0x125]
sub edx, esi
mov byte [edi], 0xd
push edx
push edi
push eax
call ebp
add esp, 0xc
inc ebx
mov byte [edi], 0xa
add esi, 2
jmp 0x4a66c6
mov al, 0x20
jmp 0x4a650a
mov al, 0xa6
jmp 0x4a650a
mov al, 0xa7
jmp 0x4a650a
mov al, 0xa3
jmp 0x4a650a
mov al, 0xa4
jmp 0x4a650a
mov al, 0xa5
jmp 0x4a650a
mov al, 0xb9
jmp 0x4a650a
mov al, 0xb3
jmp 0x4a650a
mov al, 0xaa
jmp 0x4a650a
mov al, 0xab
jmp 0x4a650a
mov al, 0xa8
jmp 0x4a650a
mov al, 0xc7
jmp 0x4a650a
mov al, 0xac
jmp 0x4a650a
mov al, 0xb5
jmp 0x4a650a
mov al, 0xd1
jmp 0x4a650a
mov al, 0xd2
jmp 0x4a650a
mov al, 0xd3
jmp 0x4a650a
mov al, 0xd4
jmp 0x4a650a
mov al, 0xd5
jmp 0x4a650a
mov al, 0xd6
jmp 0x4a650a
mov al, 0xd7
jmp 0x4a650a
mov al, 0xd8
jmp 0x4a650a
mov al, 0xd9
jmp 0x4a650a
mov al, 0xad
jmp 0x4a650a
mov al, 0xbd
jmp 0x4a650a
mov al, 0xb0
jmp 0x4a650a
mov al, 0xee
jmp 0x4a650a
mov al, 0xed
jmp 0x4a650a
mov al, 0xdf
jmp 0x4a650a
mov al, 0xd0
jmp 0x4a650a
mov al, 0xe1
jmp 0x4a650a
mov al, 0xe2
jmp 0x4a650a
mov al, 0xde
jmp 0x4a650a
mov al, 0xe4
jmp 0x4a650a
mov al, 0xec
jmp 0x4a650a
mov al, 0xfd
jmp 0x4a650a
mov al, 0xfe
jmp 0x4a650a
mov al, 0xeb
jmp 0x4a650a
mov al, 0xef
jmp 0x4a650a
mov al, 0xe8
jmp 0x4a650a
mov al, 0xda
jmp 0x4a650a
mov al, 0xe9
jmp 0x4a650a
mov al, 0xf3
jmp 0x4a650a
mov al, pe_nt_image_headers32
jmp 0x4a650a
mov al, 0xae
jmp 0x4a650a
mov al, 0xe7
jmp 0x4a650a
mov al, 0xe6
jmp 0x4a650a
mov al, 0xf5
jmp 0x4a650a
mov al, 0xbf
jmp 0x4a650a
cmp esi, ebx
jge 0x4a66c5
mov eax, ebx
lea ecx, [esp + esi + 0x125]
sub eax, esi
dec eax
push eax
push ecx
push edi
call ebp
add esp, 0xc
dec ebx
cmp esi, ebx
jl 0x4a6479
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 4
lea edx, [esp + 0x128]
push ebx
push edx
push eax
call fcn.0048d240
cmp edi, 0x100
jae 0x4a644a
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x4a7401
push edi
mov dword [esp + 0x20], ebx
call esi
lea edx, [esp + 0x324]
push 0x506f34
push edx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, dword [sym.imp.MSVCRT.dll_memmove]
mov edi, eax
add esp, 8
mov dword [esp + 0x2c], edi
push edi
lea eax, [esp + 0x128]
push 0x100
push eax
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4a6d88
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
not ecx
dec ecx
cmp eax, ebp
mov ebx, ecx
je 0x4a67a8
xor edi, edi
cmp ebx, ebp
jle 0x4a67a8
mov cl, byte [esp + edi + 0x124]
lea eax, [esp + edi + 0x125]
cmp cl, 0x3c
jne 0x4a67a3
sub ebx, edi
lea edx, [esp + 0x124]
lea ecx, [ebx - 1]
push ecx
push eax
push edx
call esi
add esp, 0xc
dec ebx
mov dword [esp + 0x1c], ebp
inc edi
cmp edi, ebx
jl 0x4a6777
xor ebp, ebp
test ebx, ebx
jle 0x4a6d5c
mov al, byte [esp + ebp + 0x124]
cmp al, 0x3e
je 0x4a6836
cmp al, 0x30
jb 0x4a6836
cmp al, 0x7f
ja 0x4a6836
cmp ebp, ebx
mov eax, ebp
mov dword [esp + 0x10], 1
jge 0x4a6836
mov cl, byte [esp + ebp + 0x124]
cmp cl, 0x20
jb 0x4a67e9
cmp cl, 0x7f
ja 0x4a67e9
inc ebp
cmp ebp, ebx
jl 0x4a67d3
cmp ebp, eax
jle 0x4a6836
mov ecx, ebp
lea esi, [esp + eax + 0x124]
sub ecx, eax
lea edi, [esp + 0x604]
mov dword [esp + 0x14], ecx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
jge 0x4a6d4e
mov ecx, edx
lea esi, [esp + ecx + 0x603]
mov dl, byte [esi]
mov byte [esp + eax + 0x124], dl
inc eax
dec esi
cmp eax, ebp
jl 0x4a6822
jmp 0x4a6d4e
mov al, byte [esp + ebp + 0x124]
lea edi, [esp + ebp + 0x124]
cmp al, 0x20
jne 0x4a686b
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4a6865
cmp ebp, ebx
jge 0x4a686b
mov cl, byte [esp + ebp + 0x125]
cmp cl, 0x7f
ja 0x4a686b
cmp cl, 0x21
jbe 0x4a686b
inc ebp
jmp 0x4a6d4e
and eax, 0xff
add eax, 0xfffffff6
cmp eax, 0xf5
ja case.0x4a6886.97
xor ecx, ecx
mov cl, byte [eax + 0x4a7b0c]
jmp dword [ecx*4 + 0x4a79ac]
mov edx, ebx
lea eax, [esp + ebp + 0x125]
sub edx, ebp
mov byte [edi], 0xd
push edx
push edi
push eax
call esi
add esp, 0xc
inc ebx
mov byte [edi], 0xa
add ebp, 2
jmp 0x4a6d4e
lea esi, [ebp + 1]
cmp esi, ebx
jge 0x4a6d4e
mov eax, 1
cmp byte [esp + esi + 0x124], 0x3c
je 0x4a68d7
inc esi
mov dword [esp + 0x1c], eax
cmp esi, ebx
jl 0x4a68bf
jmp 0x4a6d4e
mov ecx, ebx
lea edx, [esp + esi + 0x125]
sub ecx, esi
dec ecx
push ecx
push edx
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, ebp
add esp, 0xc
sub eax, esi
dec ebp
mov dword [esp + 0x1c], 0
lea ebx, [ebx + eax - 1]
jmp 0x4a6d4e
mov al, 0x20
jmp 0x4a6d0f
mov al, 0x81
jmp 0x4a6d0f
mov al, 0x82
jmp 0x4a6d0f
mov al, 0x83
jmp 0x4a6d0f
mov al, 0x84
jmp 0x4a6d0f
mov al, 0x85
jmp 0x4a6d0f
mov al, 0x86
jmp 0x4a6d0f
mov al, 0x87
jmp 0x4a6d0f
mov al, 0x88
jmp 0x4a6d0f
mov al, 0x89
jmp 0x4a6d0f
mov al, 0x8a
jmp 0x4a6d0f
mov al, 0x8b
jmp 0x4a6d0f
mov al, 0x8c
jmp 0x4a6d0f
mov al, 0x8d
jmp 0x4a6d0f
mov al, 0x8e
jmp 0x4a6d0f
mov al, 0x8f
jmp 0x4a6d0f
mov al, 0x90
jmp 0x4a6d0f
mov al, 0x91
jmp 0x4a6d0f
mov al, 0x92
jmp 0x4a6d0f
mov al, 0x93
jmp 0x4a6d0f
mov al, 0x94
jmp 0x4a6d0f
mov al, 0x95
jmp 0x4a6d0f
mov al, 0x96
jmp 0x4a6d0f
mov al, 0x97
jmp 0x4a6d0f
mov al, 0x98
jmp 0x4a6d0f
mov al, 0x99
jmp 0x4a6d0f
mov al, 0x9a
jmp 0x4a6d0f
mov al, 0x9b
jmp 0x4a6d0f
mov al, 0x9c
jmp 0x4a6d0f
mov al, 0x9d
jmp 0x4a6d0f
mov al, 0x9e
jmp 0x4a6d0f
mov al, 0x9f
jmp 0x4a6d0f
mov al, 0xa0
jmp 0x4a6d0f
mov al, 0xa1
jmp 0x4a6d0f
mov al, 0xa2
jmp 0x4a6d0f
mov al, 0xa3
jmp 0x4a6d0f
mov al, 0xa4
jmp 0x4a6d0f
mov al, 0xa5
jmp 0x4a6d0f
mov al, 0xa6
jmp 0x4a6d0f
mov al, 0xa7
jmp 0x4a6d0f
mov ecx, ebx
lea edx, [esp + ebp + 0x125]
sub ecx, ebp
mov byte [edi], 0x81
push ecx
push edi
push edx
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push edi
push ecx
mov byte [edi], 0xac
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov al, 0xb6
jmp 0x4a6d0f
mov edx, ebx
lea eax, [esp + ebp + 0x125]
sub edx, ebp
mov byte [edi], 0x81
push edx
push edi
push eax
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edi
push edx
mov byte [edi], 0xaa
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov eax, ebx
lea ecx, [esp + ebp + 0x125]
sub eax, ebp
mov byte [edi], 0x81
push eax
push edi
push ecx
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push edi
push eax
mov byte [edi], 0xc7
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov ecx, ebx
lea edx, [esp + ebp + 0x125]
sub ecx, ebp
mov byte [edi], 0xa4
push ecx
push edi
push edx
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push edi
push ecx
mov byte [edi], 0xbd
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov al, 0xac
jmp 0x4a6d0f
mov al, 0xb9
jmp 0x4a6d0f
mov al, 0xfa
jmp 0x4a6d0f
mov al, 0xfb
jmp 0x4a6d0f
mov al, 0xfe
jmp 0x4a6d0f
mov al, 0xfd
jmp 0x4a6d0f
mov al, 0xea
jmp 0x4a6d0f
mov al, 0xe9
jmp 0x4a6d0f
mov edx, ebx
lea eax, [esp + ebp + 0x125]
sub edx, ebp
mov byte [edi], 0x9e
push edx
push edi
push eax
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edi
push edx
mov byte [edi], 0x81
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov al, 0xf2
jmp 0x4a6d0f
mov eax, ebx
lea ecx, [esp + ebp + 0x125]
sub eax, ebp
mov byte [edi], 0x81
push eax
push edi
push ecx
call esi
add ebp, 2
mov eax, ebx
mov byte [edi], 4
sub eax, ebp
lea edi, [esp + ebp + 0x130]
lea ecx, [esp + ebp + 0x131]
push eax
push edi
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
call esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push edi
push eax
mov byte [edi], 0xb3
call esi
add esp, 0x24
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
mov al, 0xed
jmp 0x4a6d0f
mov al, 0xab
jmp 0x4a6d0f
mov al, 0xaa
jmp 0x4a6d0f
mov al, 0xf3
jmp 0x4a6d0f
mov al, 0xee
jmp 0x4a6d0f
mov al, 0xdf
jmp 0x4a6d0f
mov al, 0xda
jmp 0x4a6d0f
mov al, 0xf6
jmp 0x4a6d0f
mov al, 0xe6
jmp 0x4a6d0f
mov al, 0xae
jmp 0x4a6d0f
mov al, 0xe0
jmp 0x4a6d0f
mov al, 0xe7
jmp 0x4a6d0f
mov al, 0xe1
jmp 0x4a6d0f
mov al, 0xe2
jmp 0x4a6d0f
mov al, 0xf5
jmp 0x4a6d0f
mov al, 0xe4
jmp 0x4a6d0f
mov al, 0xf1
jmp 0x4a6d0f
mov al, 0xbf
jmp 0x4a6d0f
mov al, 0xec
jmp 0x4a6d0f
mov al, 0xd1
jmp 0x4a6d0f
mov al, 0xd2
jmp 0x4a6d0f
mov al, 0xd3
jmp 0x4a6d0f
mov al, 0xd4
jmp 0x4a6d0f
mov al, 0xd5
jmp 0x4a6d0f
mov al, 0xd6
jmp 0x4a6d0f
mov al, 0xd7
jmp 0x4a6d0f
mov al, 0xd8
jmp 0x4a6d0f
mov al, 0xd9
jmp 0x4a6d0f
mov al, 0xd0
mov ecx, ebx
lea edx, [esp + ebp + 0x125]
sub ecx, ebp
mov byte [edi], al
push ecx
push edi
push edx
call esi
add esp, 0xc
inc ebx
mov byte [edi], 4
add ebp, 2
mov dword [esp + 0x10], 0
jmp 0x4a6d4e
cmp ebp, ebx
jge 0x4a6d4d
mov eax, ebx
lea ecx, [esp + ebp + 0x125]
sub eax, ebp
dec eax
push eax
push ecx
push edi
call esi
add esp, 0xc
dec ebx
mov esi, dword [sym.imp.MSVCRT.dll_memmove]
cmp ebp, ebx
jl 0x4a67b2
mov eax, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 4
lea edx, [esp + 0x128]
push ebx
push edx
push eax
call fcn.0048d240
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1a14]
jmp 0x4a6731
push 4
lea ecx, [esp + 0x2c]
push 2
push ecx
mov ecx, dword [esp + 0x2c]
push ebp
mov byte [esp + 0x38], 0xd
mov byte [esp + 0x39], 0xa
call fcn.0048d240
push edi
jmp 0x4a7401
push edi
call esi
lea edx, [esp + 0x324]
push 0x506f20
push edx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [esp + 0x10], eax
mov byte [esp + 0x1b], 0
mov byte [esp + 0x1a], 1
jmp 0x4a6dda
xor ebx, ebx
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x604]
push eax
push 0x100
push 1
push ecx
xor edi, edi
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ebx
jle 0x4a708f
mov edx, dword [esp + 0x1c]
xor bl, bl
mov cl, byte [esp + edx + 0x604]
cmp cl, 0x80
jae 0x4a6e2c
cmp cl, 0x20
jbe 0x4a6e2c
cmp cl, 0x2d
je 0x4a6e2c
mov bl, cl
jmp case.0x4a6e49.79
mov eax, ecx
and eax, 0xff
add eax, 0xfffffff6
cmp eax, 0xf2
ja case.0x4a6e49.79
xor edx, edx
mov dl, byte [eax + 0x4a7d1c]
jmp dword [edx*4 + 0x4a7c04]
mov bl, 0xd
jmp case.0x4a6e49.79
mov al, byte [esp + 0x1b]
test al, al
jne case.0x4a6e49.79
mov bl, 0x20
jmp case.0x4a6e49.79
mov bl, 0xb6
jmp case.0x4a6e49.79
mov bl, 0xc8
jmp case.0x4a6e49.79
mov bl, 0x82
jmp case.0x4a6e49.79
mov bl, 0x83
jmp case.0x4a6e49.79
mov bl, 0x84
jmp case.0x4a6e49.79
mov bl, 0x85
jmp case.0x4a6e49.79
mov bl, 0x86
jmp case.0x4a6e49.79
mov bl, 0x87
jmp case.0x4a6e49.79
mov bl, 0x88
jmp case.0x4a6e49.79
mov bl, 0x89
jmp case.0x4a6e49.79
mov bl, 0x8a
jmp case.0x4a6e49.79
mov bl, 0x8b
jmp case.0x4a6e49.79
mov bl, 0x8c
jmp case.0x4a6e49.79
mov bl, 0x8d
jmp case.0x4a6e49.79
mov bl, 0x8e
jmp case.0x4a6e49.79
mov bl, 0x8f
jmp case.0x4a6e49.79
mov bl, 0x90
jmp case.0x4a6e49.79
mov bl, 0x91
jmp case.0x4a6e49.79
mov bl, 0x92
jmp case.0x4a6e49.79
mov bl, 0x93
jmp case.0x4a6e49.79
mov bl, 0x94
jmp case.0x4a6e49.79
mov bl, 0x95
jmp case.0x4a6e49.79
mov bl, 0x96
jmp case.0x4a6e49.79
mov bl, 0x97
jmp case.0x4a6e49.79
mov bl, 0x98
jmp case.0x4a6e49.79
mov bl, 0x99
jmp case.0x4a6e49.79
mov bl, 0x9a
jmp case.0x4a6e49.79
mov bl, 0x9b
jmp case.0x4a6e49.79
mov bl, 0x9c
jmp case.0x4a6e49.79
mov bl, 0x9d
jmp case.0x4a6e49.79
mov bl, 0x9e
jmp case.0x4a6e49.79
mov byte [esp + edi + 0xa04], 4
inc edi
mov byte [esp + edi + 0xa04], 0x9e
inc edi
mov bl, 0x81
jmp case.0x4a6e49.79
mov bl, 0x9f
jmp case.0x4a6e49.79
mov bl, 0xa0
jmp case.0x4a6e49.79
mov bl, 0xa1
jmp case.0x4a6e49.79
mov bl, 0xa2
jmp case.0x4a6e49.79
mov bl, 0xa6
jmp case.0x4a6e49.79
mov bl, 0xb9
jmp case.0x4a6e49.79
mov bl, 0xa7
jmp case.0x4a6e49.79
mov bl, 0xa3
jmp case.0x4a6e49.79
mov bl, 0xa4
jmp case.0x4a6e49.79
mov bl, 0xa5
jmp case.0x4a6e49.79
mov bl, 0xd1
jmp case.0x4a6e49.79
mov bl, 0xd2
jmp case.0x4a6e49.79
mov bl, 0xd3
jmp case.0x4a6e49.79
mov bl, 0xd4
jmp case.0x4a6e49.79
mov bl, 0xd5
jmp case.0x4a6e49.79
mov bl, 0xd6
jmp case.0x4a6e49.79
mov bl, 0xd7
jmp case.0x4a6e49.79
mov bl, 0xd8
jmp case.0x4a6e49.79
mov bl, 0xd9
jmp case.0x4a6e49.79
mov bl, 0xd0
jmp case.0x4a6e49.79
mov bl, 0xda
jmp case.0x4a6e49.79
mov bl, 0xea
jmp case.0x4a6e49.79
mov bl, 0xf3
jmp case.0x4a6e49.79
mov bl, 0xfe
jmp case.0x4a6e49.79
mov bl, 0xfd
jmp case.0x4a6e49.79
mov bl, pe_nt_image_headers32
jmp case.0x4a6e49.79
mov bl, 0xae
jmp case.0x4a6e49.79
mov bl, 0xe6
jmp case.0x4a6e49.79
mov bl, 0xac
jmp case.0x4a6e49.79
mov bl, 0xaa
jmp case.0x4a6e49.79
mov bl, 0xab
jmp case.0x4a6e49.79
mov bl, 0xe2
jmp case.0x4a6e49.79
mov bl, 0xe1
jmp case.0x4a6e49.79
mov bl, 0xee
cmp cl, 0x20
sete byte [esp + 0x1b]
cmp bl, 0xd
jne 0x4a7003
mov al, byte [esp + 0x1a]
test al, al
jne 0x4a6ffc
xor bl, bl
mov byte [esp + 0x1a], 1
jmp 0x4a700d
cmp bl, 0x20
jbe 0x4a700d
mov byte [esp + 0x1a], 0
test bl, bl
je 0x4a707a
cmp bl, 0x80
jae 0x4a7069
cmp cl, 0x20
jne 0x4a702a
cmp edi, 2
jl 0x4a7069
cmp byte [esp + edi + 0xa02], 4
je 0x4a7069
cmp edi, 2
mov eax, edi
jl 0x4a7047
lea ecx, [esp + 0xa04]
sub ecx, 2
cmp byte [eax + ecx], 4
je 0x4a7047
dec eax
cmp eax, 2
jge 0x4a703b
mov ecx, edi
lea esi, [esp + eax + 0xa04]
sub ecx, eax
lea edx, [esp + eax + 0xa05]
push ecx
push esi
push edx
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov byte [esi], bl
jmp 0x4a7079
mov byte [esp + edi + 0xa04], 4
inc edi
mov byte [esp + edi + 0xa04], bl
inc edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4a6e09
mov ecx, dword [esp + 0x20]
push 4
lea eax, [esp + 0xa08]
push edi
push eax
push ebp
call fcn.0048d240
cmp dword [esp + 0x28], 0x100
jae 0x4a6dd8
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x4a7401
push edi
call esi
lea edx, [esp + 0x324]
push 0x506f20
push edx
mov dword [esp + 0x2c], 0
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, dword [sym.imp.MSVCRT.dll_fseek]
mov ebp, eax
push 0
push 0x88
push ebp
mov byte [esp + 0x2e], 1
call ebx
add esp, 0x14
mov byte [esp + 0x1b], 1
mov esi, dword [sym.imp.MSVCRT.dll_fread]
push ebp
push 6
lea eax, [esp + 0x34]
push 1
push eax
xor edi, edi
call esi
add esp, 0x10
cmp eax, 6
jb 0x4a711d
mov ecx, dword [esp + 0x2c]
test cl, cl
jne 0x4a717d
push ebp
push 1
lea ecx, [esp + 0x34]
push 1
push ecx
call esi
add esp, 0x10
cmp eax, 1
jl 0x4a7400
cmp byte [esp + 0x2c], 0x7e
jne 0x4a711d
push ebp
push 5
lea edx, [esp + 0x34]
push 1
push edx
call esi
add esp, 0x10
cmp eax, 5
jl 0x4a7400
xor eax, eax
mov cl, byte [esp + eax + 0x2c]
cmp cl, 0x30
jb 0x4a716c
cmp cl, 0x39
ja 0x4a716c
inc eax
cmp eax, 5
jge 0x4a7171
jmp 0x4a7156
cmp eax, 5
jl 0x4a711d
push 1
push 0xc
push ebp
call ebx
add esp, 0xc
jmp 0x4a70ff
cmp cl, 0x80
jae 0x4a71ab
cmp cl, 0x20
jbe 0x4a71ab
cmp cl, 0x2d
je 0x4a71ab
mov bl, cl
cmp bl, 0xd
jne 0x4a7394
mov al, byte [esp + 0x1a]
test al, al
jne 0x4a71a1
xor bl, bl
mov byte [esp + 0x1a], 1
jmp 0x4a739e
mov eax, ecx
and eax, 0xff
add eax, 0xfffffff6
cmp eax, 0xf1
ja case.0x4a71c8.80
xor edx, edx
mov dl, byte [eax + 0x4a7f2c]
jmp dword [edx*4 + 0x4a7e10]
mov bl, 0xd
jmp 0x4a7197
mov bl, 0x20
jmp 0x4a73a7
mov bl, 0x81
jmp 0x4a7399
mov bl, 0xc8
jmp 0x4a7399
mov bl, 0x82
jmp 0x4a7399
mov bl, 0x83
jmp 0x4a7399
mov bl, 0x84
jmp 0x4a7399
mov bl, 0x85
jmp 0x4a7399
mov bl, 0x86
jmp 0x4a7399
mov bl, 0x87
jmp 0x4a7399
mov bl, 0x88
jmp 0x4a7399
mov bl, 0x89
jmp 0x4a7399
mov bl, 0x8a
jmp 0x4a7399
mov bl, 0x8b
jmp 0x4a7399
mov bl, 0x8c
jmp 0x4a7399
mov bl, 0x8d
jmp 0x4a7399
mov bl, 0x8e
jmp 0x4a7399
mov bl, 0x8f
jmp 0x4a7399
mov bl, 0x90
jmp 0x4a7399
mov bl, 0x91
jmp 0x4a7399
mov bl, 0x92
jmp 0x4a7399
mov bl, 0x93
jmp 0x4a7399
mov bl, 0x94
jmp 0x4a7399
mov bl, 0x95
jmp 0x4a7399
mov bl, 0x96
jmp 0x4a7399
mov bl, 0x97
jmp 0x4a7399
mov bl, 0x98
jmp 0x4a7399
mov bl, 0x99
jmp 0x4a7399
mov bl, 0x9a
jmp 0x4a7399
mov bl, 0x9b
jmp 0x4a7399
mov bl, 0x9c
jmp 0x4a7399
mov bl, 0x9d
jmp 0x4a7399
mov bl, 0x9e
jmp 0x4a7399
mov bl, 0x9f
jmp 0x4a7399
mov bl, 0xa0
jmp 0x4a7399
push ebp
mov bl, 0xa1
call dword [sym.imp.MSVCRT.dll_ftell]
mov esi, eax
push ebp
push 6
lea eax, [esp + 0x38]
push 1
push eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x14
cmp eax, 6
jne 0x4a72ed
cmp byte [esp + 0x2c], 0x20
je 0x4a72ed
mov bl, 0xa0
push 0
push esi
push ebp
call dword [sym.imp.MSVCRT.dll_fseek]
mov ecx, dword [esp + 0x38]
add esp, 0xc
jmp 0x4a718e
mov bl, 0xa2
jmp 0x4a7399
mov bl, 0xa6
jmp 0x4a7399
mov bl, 0xa7
jmp 0x4a7399
mov bl, 0xa3
jmp 0x4a7399
mov bl, 0xa4
jmp 0x4a7399
mov bl, 0xa5
jmp 0x4a7399
mov bl, 0xd0
jmp 0x4a7399
mov bl, 0xd1
jmp 0x4a7399
mov bl, 0xd2
jmp 0x4a7399
mov bl, 0xd3
jmp 0x4a7399
mov bl, 0xd4
jmp 0x4a7399
mov bl, 0xd5
jmp 0x4a7399
mov bl, 0xd6
jmp 0x4a7399
mov bl, 0xd7
jmp 0x4a7399
mov bl, 0xd8
jmp 0x4a7399
mov bl, 0xd9
jmp 0x4a7399
mov bl, 0xda
jmp 0x4a7399
mov bl, 0xfe
jmp 0x4a7399
mov bl, 0xfd
jmp 0x4a7399
mov bl, 0xf6
jmp 0x4a7399
mov bl, 0xae
jmp 0x4a7399
mov bl, 0xe7
jmp 0x4a7399
mov bl, 0xe6
jmp 0x4a7399
mov bl, 0xac
jmp 0x4a7399
mov bl, 0xaa
jmp 0x4a7399
mov bl, 0xab
jmp 0x4a7399
mov bl, 0xee
jmp 0x4a7399
mov bl, 0xa8
jmp 0x4a7399
mov bl, 0xc7
jmp 0x4a7399
mov bl, 0xad
jmp 0x4a7399
mov bl, 0xcf
jmp 0x4a7399
mov bl, 0xe8
jmp 0x4a7399
mov bl, 0xf7
jmp 0x4a7399
mov bl, pe_nt_image_headers32
jmp 0x4a7399
cmp bl, 0x20
jbe 0x4a739e
mov byte [esp + 0x1a], 0
test bl, bl
je case.0x4a71c8.80
cmp bl, 0x80
jae 0x4a73c3
cmp cl, 0x20
jne 0x4a73b4
mov al, byte [esp + 0x1b]
test al, al
jne 0x4a73c3
mov byte [esp + edi + 0x1204], bl
mov byte [esp + 0x1b], 0
inc edi
jmp case.0x4a71c8.80
mov byte [esp + edi + 0x1204], 4
inc edi
mov byte [esp + 0x1b], 1
mov byte [esp + edi + 0x1204], bl
inc edi
mov edx, dword [esp + 0x1a14]
push 4
lea ecx, [esp + 0x1208]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push edx
call fcn.0048d240
mov ebx, dword [sym.imp.MSVCRT.dll_fseek]
jmp 0x4a70f9
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov eax, dword [esp + 0x1a14]
mov ecx, dword [esp + 0x20]
push 3
push 0
push 0
push eax
call fcn.0048d240
call fcn.004ceb00
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a7435
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
mov cx, word [esp + 0x94]
mov word [0x506a74], cx
jmp 0x4a745b
lea edx, [esp + 0x324]
push edx
push 0x1880
call fcn.00454b50
add esp, 8
mov ecx, dword [esp + 0x1a04]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a00
ret 4