Function at 0x408b35
Capabilities:
Read file via mapping

Disassembly:
push 0x49c
push 0x41bd38
call fcn.0041bae8
mov dword [ebp - 0x4a8], edx
mov esi, ecx
mov dword [ebp - 0x47c], esi
mov dword [ebp - 0x4ac], esi
xor edi, edi
mov ebx, edi
mov dword [ebp - 0x4a4], edi
mov dword [ebp - 0x4a0], edi
mov dword [ebp - 0x480], edi
push 0x34
push edi
lea eax, [ebp - 0x258]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x49c], edi
mov eax, edi
mov dword [ebp - 0x478], eax
call fcn.00416afa
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
mov dword [ebp - 0x464], eax
mov eax, dword [0x41e6dc]
cmp eax, 0xffffffff
jne 0x408bb6
mov ecx, esi
call fcn.0040947b
jmp 0x4092d3
lea ecx, [ebp - 0x258]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov esi, eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], eax
lea edx, [ebp - 0x460]
mov ecx, dword [ebp - 0x47c]
call fcn.00408ab1
test esi, esi
jne 0x408bfd
mov ecx, dword [ebp - 0x47c]
call fcn.0040947b
jmp 0x4092c0
cmp dword [ebp - 0x46c], 0x40000000
jae 0x4092a1
cmp dword [ebp - 0x238], ebx
jne 0x4092a1
push dword [0x41dfd0]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 0x47c]
call fcn.0040950e
test eax, eax
je 0x4092d3
mov eax, dword [ebp - 0x46c]
test eax, eax
je 0x408c8d
mov esi, edi
mov dword [ebp - 0x494], esi
push edi
push eax
push edi
push 2
push edi
push dword [0x41e6dc]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x490], eax
test eax, eax
je 0x408ca2
push dword [ebp - 0x46c]
push edi
push edi
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
mov dword [ebp - 0x494], esi
push dword [ebp - 0x490]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x408ca2
lea esi, [ebp - 0x498]
mov dword [ebp - 0x494], esi
xor eax, eax
mov word [ebp - 0x498], ax
push dword [0x41e6dc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [0x41e6dc], 0xffffffff
test esi, esi
jne 0x408cd0
push dword [0x41dfcc]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 0x47c]
jmp 0x408bac
mov dword [ebp - 4], edi
mov edx, esi
mov dword [ebp - 0x484], edx
mov eax, dword [ebp - 0x4a8]
cmp eax, 0xffffffff
jne 0x408e05
movzx eax, word [esi]
cmp eax, 0xbbef
je 0x408d3b
cmp eax, 0xfeff
je 0x408d2a
cmp eax, 0xfffe
jne 0x408d7a
xor eax, eax
inc eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x470], 2
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x46c]
mov ebx, eax
shr ebx, 1
jmp 0x408ef7
xor eax, eax
inc eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x470], eax
jmp 0x408d15
mov eax, dword [ebp - 0x46c]
cmp eax, 2
jbe 0x408d80
cmp byte [esi + 2], 0xbf
jne 0x408d80
mov ecx, 0xfde9
mov dword [ebp - 0x478], ecx
mov dword [ebp - 0x488], ecx
push 3
pop edx
mov dword [ebp - 0x470], edx
lea eax, [esi + 3]
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x46c]
jmp 0x408e81
mov eax, dword [ebp - 0x46c]
mov edx, eax
mov ecx, esi
call fcn.0041738d
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x48c], eax
test eax, eax
je 0x408dbe
mov dword [ebp - 0x470], 1
mov eax, dword [ebp - 0x46c]
mov ebx, eax
shr ebx, 1
mov dword [ebp - 0x474], ebx
mov edx, dword [ebp - 0x484]
jmp 0x408efe
mov edx, dword [ebp - 0x46c]
mov ecx, esi
call fcn.0041732e
test eax, eax
je 0x408de0
mov dword [ebp - 0x470], 3
mov ecx, 0xfde9
jmp 0x408de8
mov dword [ebp - 0x470], edi
mov ecx, edi
mov dword [ebp - 0x478], ecx
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x484]
jmp 0x408f00
sub eax, 1
je 0x408ec8
sub eax, 1
je 0x408e8e
sub eax, 1
je 0x408e37
mov dword [ebp - 0x470], edi
mov ecx, edi
mov dword [ebp - 0x478], ecx
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x46c]
jmp 0x408f00
mov ecx, 0xfde9
mov dword [ebp - 0x478], ecx
mov dword [ebp - 0x488], ecx
push 3
pop edx
mov dword [ebp - 0x470], edx
mov eax, dword [ebp - 0x46c]
cmp eax, 2
jbe 0x408dfa
mov ecx, 0xbbef
cmp word [esi], cx
mov ecx, dword [ebp - 0x478]
jne 0x408dfa
cmp byte [esi + 2], 0xbf
jne 0x408dfa
lea ecx, [esi + 3]
mov dword [ebp - 0x484], ecx
mov ecx, dword [ebp - 0x478]
sub eax, edx
mov dword [ebp - 0x46c], eax
lea edx, [esi + 3]
jmp 0x408f00
xor eax, eax
inc eax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x46c]
mov ebx, eax
shr ebx, 1
mov dword [ebp - 0x474], ebx
mov ecx, 0xfffe
cmp word [esi], cx
mov ecx, edi
jne 0x408f00
dec ebx
mov dword [ebp - 0x474], ebx
jmp 0x408f00
xor eax, eax
inc eax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x46c]
mov ebx, eax
shr ebx, 1
mov dword [ebp - 0x474], ebx
mov ecx, 0xfeff
cmp word [esi], cx
jne 0x408efe
dec ebx
mov dword [ebp - 0x474], ebx
mov ecx, edi
cmp dword [ebp - 0x480], 0
jne 0x408f1d
push edi
push edi
push eax
push edx
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
mov dword [ebp - 0x474], ebx
push edi
push edi
push 0xb
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push edi
push 0xb1
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push edi
push 0xb7
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 2
lea eax, [ebx*2 + 2]
push eax
push dword [0x41dfc8]
call dword [sym.imp.KERNEL32.dll_LocalReAlloc]
mov dword [ebp - 0x49c], eax
test eax, eax
jne 0x408fe9
push dword [ebp - 0x47c]
mov edx, 0x104
lea ecx, [ebp - 0x224]
call fcn.00405313
xor ecx, ecx
call fcn.004092db
push dword [0x41dfcc]
call dword [sym.imp.USER32.dll_SetCursor]
push 0x30
lea eax, [ebp - 0x224]
push eax
push dword [0x41c248]
mov edx, dword [0x41c244]
mov ecx, dword [0x41d1dc]
call fcn.0040788e
lea eax, [ebp - 0x498]
cmp esi, eax
je 0x408fcd
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
push edi
push 0xb
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 4], 0xfffffffe
jmp 0x4092d3
push dword [ebp - 0x49c]
call dword [sym.imp.KERNEL32.dll_LocalLock]
mov ecx, eax
mov dword [ebp - 0x490], ecx
mov dword [ebp - 0x4a4], ecx
cmp dword [ebp - 0x480], 0
je 0x409048
movzx edx, word [esi]
mov eax, 0xfeff
cmp dx, ax
jne 0x409023
lea eax, [ebx + ebx]
push eax
lea eax, [esi + 2]
push eax
jmp 0x40903d
mov eax, 0xfffe
cmp dx, ax
jne 0x409038
push ebx
lea edx, [esi + 2]
call fcn.00408410
jmp 0x40906c
lea eax, [ebx + ebx]
push eax
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x40906c
push ebx
push ecx
push dword [ebp - 0x46c]
push dword [ebp - 0x484]
push edi
mov eax, dword [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
mov dword [ebp - 0x474], ebx
mov eax, dword [ebp - 0x470]
mov dword [0x41c19c], eax
mov dword [ebp - 4], 0xfffffffe
jmp 0x4090d0
lea eax, [ebp - 0x498]
cmp esi, eax
je 0x4090e1
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, dword [ebp - 0x490]
test ecx, ecx
je 0x409137
mov eax, ecx
test ebx, ebx
je 0x409106
mov edx, ebx
cmp word [eax], di
jne 0x4090fe
push 0x20
pop esi
mov word [eax], si
add eax, 2
sub edx, 1
jne 0x4090f3
xor eax, eax
mov word [ecx + ebx*2], ax
cmp word [ecx], 0x2e
jne 0x409131
cmp word [ecx + 2], 0x4c
jne 0x409131
cmp word [ecx + 4], 0x4f
jne 0x409131
cmp word [ecx + 6], 0x47
mov dword [ebp - 0x4a0], 1
je 0x409137
mov dword [ebp - 0x4a0], edi
mov esi, dword [ebp - 0x49c]
push esi
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
mov dword [0x41dfc8], esi
mov esi, dword [ebp - 0x47c]
push esi
mov edx, 0x104
mov ecx, 0x41e040
call fcn.00405313
mov ecx, esi
call fcn.004074aa
mov dword [0x41c268], edi
mov dword [0x41d1c4], 1
push edi
push dword [0x41dfc8]
push 0xbc
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x41d1c4], 2
jne 0x4091e1
push dword [0x41dfcc]
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x41d1c4], edi
push 0x30
push esi
push dword [0x41c248]
mov edx, dword [0x41c244]
mov ecx, dword [0x41d1dc]
call fcn.0040788e
xor ecx, ecx
call fcn.004092db
push edi
push 1
push 0xb
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4092d3
mov dword [0x41d1c4], edi
push edi
push edi
push 0xc5
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [ebp - 0x4a0], 0
je 0x409231
push ebx
push ebx
push 0xb1
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push edi
push 0xb7
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
inc ecx
call fcn.00408245
push 1
push edi
push 0xbe
push 0x115
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push dword [0x41d1dc]
call dword [sym.imp.USER32.dll_SetScrollPos]
push edi
push 1
push 0xb
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push edi
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x41d1d4]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [0x41dfcc]
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [ebp - 0x468]
call fcn.00416ba1
xor eax, eax
inc eax
jmp 0x4092d5
push 0x30
push dword [ebp - 0x47c]
push dword [0x41c248]
mov edx, dword [0x41c244]
mov ecx, dword [0x41d1dc]
call fcn.0040788e
push dword [0x41e6dc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [0x41e6dc], 0xffffffff
xor eax, eax
call fcn.0041bb30
ret