Function at 0x1005df70
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10098d10
mov eax, dword fs:[0]
push eax
sub esp, 0xf44
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp dword [edi + 0x12c], 0xffffffff
mov ecx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x38]
mov dword [ebp - 0xf40], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xf3c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xf30], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0xf38], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0xf50], edi
mov dword [ebp - 0xf14], eax
mov dword [ebp - 0xf34], ecx
mov dword [ebp - 0xf2c], esi
mov dword [ebp - 0xf28], 0
mov dword [ebp - 0xf04], ebx
mov dword [ebp - 0xf1c], ebx
jne 0x1005e060
cmp dword [edi + 0x118], 0x10
lea ecx, [edi + 0x104]
jb 0x1005e01a
mov ecx, dword [ecx]
movzx eax, byte [edi + 0x11e]
sub esp, 8
push eax
push dword [edi + 0x168]
movzx eax, word [edi + 0x11c]
push eax
push ecx
mov ecx, edi
call fcn.1005f360
test al, al
jne 0x1005e05a
push 0x100c97d8
lea eax, [ebp - 0xf44]
mov dword [ebp - 0xf44], 0x6a
push eax
call fcn.100823fd
mov eax, dword [ebp - 0xf14]
or ebx, 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0xf24], ebx
test eax, eax
je 0x1005e0c0
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov ebx, eax
mov dword [ebp - 0xf24], ebx
cmp ebx, 0xffffffff
je 0x1005e144
lea eax, [esi + 4]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov dword [esi], eax
or eax, dword [esi + 4]
jne 0x1005e0c0
push ebx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
or ebx, 0xffffffff
mov dword [ebp - 0xf24], ebx
cmp ebx, 0xffffffff
je 0x1005e144
mov eax, dword [ebp - 0xf34]
cmp dword [eax + 4], 0
ja 0x1005e10b
jb 0x1005e0d8
cmp dword [eax], 0
ja 0x1005e10b
mov edx, dword [ebp + 0x40]
test edx, edx
je 0x1005e0eb
cmp dword [esi + 4], 0
ja 0x1005e10e
jb 0x1005e0eb
cmp dword [esi], edx
ja 0x1005e10e
mov eax, dword [ebp - 0xf30]
mov dword [ebp - 0xf08], eax
mov eax, dword [ebp - 0xf30]
mov dword [ebp - 0xf1c], 0
mov dword [eax], ebx
jmp 0x1005e15d
mov edx, dword [ebp + 0x40]
mov ecx, edx
mov dword [ebp - 0xf1c], 1
add ecx, dword [esi]
mov eax, 0
push 0
adc eax, dword [esi + 4]
add ecx, 0xffffffff
push edx
adc eax, 0xffffffff
push eax
push ecx
call fcn.100822d0
mov dword [ebp - 0xf08], eax
mov eax, dword [ebp - 0xf30]
mov dword [eax], ebx
jmp 0x1005e15d
cmp dword [edi + 0x158], 0
jbe 0x1005ef28
mov eax, dword [ebp - 0xf30]
mov dword [ebp - 0xf08], eax
cmp dword [edi + 0x38], 0
jne 0x1005e17e
push 0x100c97d8
lea eax, [ebp - 0xf4c]
mov dword [ebp - 0xf4c], 0xc9
push eax
call fcn.100823fd
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp dword [eax + 0x100db750], 9
je 0x1005e19a
add eax, 0x14
inc ecx
cmp eax, 0x140
jb 0x1005e184
jmp 0x1005e1a4
lea eax, [ecx + ecx*4]
lea esi, [eax*4 + 0x100db750]
cmp dword [edi + 0x3c], 0x10
lea eax, [edi + 0x28]
jb 0x1005e1af
mov eax, dword [eax]
push eax
push str.MAIL_FROM:__s__r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push esi
call fcn.10062450
push esi
mov ecx, edi
call fcn.10062b70
cmp dword [edi + 0x140], 0
jne 0x1005e1fc
push 0x100c97d8
lea eax, [ebp - 0xf48]
mov dword [ebp - 0xf48], 0xcb
push eax
call fcn.100823fd
mov ecx, 0xa
call fcn.1005d470
mov esi, dword [edi + 0x13c]
mov ebx, eax
mov esi, dword [esi]
cmp esi, dword [edi + 0x13c]
je 0x1005e24e
cmp dword [esi + 0x34], 0x10
lea eax, [esi + 0x20]
jb 0x1005e223
mov eax, dword [eax]
push eax
push str.RCPT_TO:__s__r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push ebx
call fcn.10062450
push ebx
mov ecx, edi
call fcn.10062b70
jmp 0x1005e20e
mov esi, dword [edi + 0x144]
mov esi, dword [esi]
cmp esi, dword [edi + 0x144]
je 0x1005e294
cmp dword [esi + 0x34], 0x10
lea eax, [esi + 0x20]
jb 0x1005e269
mov eax, dword [eax]
push eax
push str.RCPT_TO:__s__r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push ebx
call fcn.10062450
push ebx
mov ecx, edi
call fcn.10062b70
jmp 0x1005e254
mov esi, dword [edi + 0x14c]
mov esi, dword [esi]
cmp esi, dword [edi + 0x14c]
je 0x1005e2da
cmp dword [esi + 0x34], 0x10
lea eax, [esi + 0x20]
jb 0x1005e2af
mov eax, dword [eax]
push eax
push str.RCPT_TO:__s__r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push ebx
call fcn.10062450
push ebx
mov ecx, edi
call fcn.10062b70
jmp 0x1005e29a
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp dword [eax + 0x100db750], 0xb
je 0x1005e2f6
add eax, 0x14
inc ecx
cmp eax, 0x140
jb 0x1005e2e0
jmp 0x1005e300
lea eax, [ecx + ecx*4]
lea esi, [eax*4 + 0x100db750]
push str.DATA_r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0xc
mov ecx, edi
push esi
call fcn.10062450
push esi
mov ecx, edi
call fcn.10062b70
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0xf10], ebx
xor eax, eax
cmp dword [eax + 0x100db750], 0xc
je 0x1005e34a
add eax, 0x14
inc ecx
cmp eax, 0x140
jb 0x1005e334
jmp 0x1005e35a
lea eax, [ecx + ecx*4]
lea ebx, [eax*4 + 0x100db750]
mov dword [ebp - 0xf10], ebx
push dword [ebp - 0xf1c]
mov ecx, edi
push dword [ebp - 0xf08]
push dword [ebp + 0x30]
push dword [ebp - 0xf14]
sub esp, 8
push dword [ebp - 0xf3c]
push dword [ebp - 0xf38]
push dword [ebp + 0x14]
push dword [ebp - 0xf40]
push dword [edi + 0x124]
call fcn.100615d0
push ebx
mov ecx, edi
call fcn.10062450
cmp dword [edi + 0x160], 0
je 0x1005e3e3
mov esi, dword [edi + 0x15c]
mov esi, dword [esi]
cmp esi, dword [edi + 0x15c]
je 0x1005e408
cmp dword [esi + 0x1c], 0x10
lea eax, [esi + 8]
jb 0x1005e3c0
mov eax, dword [eax]
push eax
push str._s_r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push ebx
call fcn.10062450
jmp 0x1005e3ab
push 0x100c5bf0
push str._s_r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push ebx
call fcn.10062450
mov esi, dword [edi + 0x154]
mov esi, dword [esi]
cmp esi, dword [edi + 0x154]
je 0x1005e674
cmp dword [esi + 0x1c], 8
lea ecx, [esi + 8]
jb 0x1005e427
mov ecx, dword [ecx]
lea edx, [ebp - 0xd00]
lea ecx, [ecx]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x1005e430
lea eax, [ebp - 0xd00]
push 0x5c
push eax
call fcn.1007b71d
add esp, 8
test eax, eax
jne 0x1005e45e
lea eax, [ebp - 0xd00]
jmp 0x1005e461
add eax, 2
push 0x2e
push eax
mov dword [ebp - 0xf0c], eax
call fcn.1007b71d
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x1005e490
mov edx, dword [ebp - 0xf0c]
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e483
jmp 0x1005e4db
push 0x100c5bf4
add ebx, 2
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x1005e4c0
mov ecx, 0x100c5bfc
sub ebx, ecx
lea ebx, [ebx]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + ebx - 2], ax
test ax, ax
jne 0x1005e4b0
mov edx, dword [ebp - 0xf0c]
mov ecx, edx
lea ebx, [ecx + 2]
jmp 0x1005e4d0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e4d0
push 0
sub ecx, ebx
sar ecx, 1
push 0
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x24c]
push eax
push ecx
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
xor ecx, ecx
mov byte [ebp + eax - 0x24c], 0
mov al, byte [ebp + ecx - 0x24c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x501], al
test al, al
jne 0x1005e504
lea eax, [ebp - 0x500]
push eax
push eax
push str.__MESSAGE__ID__54yg6f6h6y456345
push str.___s_r_nContent_Type:_application_x_msdownload__name__s__r_nContent_Transfer_Encoding:_base64_r_nContent_Disposition:_attachment__filename__s__r_n_r_n
push dword [edi + 0x124]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov ecx, edi
push dword [ebp - 0xf10]
call fcn.10062450
mov ecx, dword [esi + 0x28]
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0xf18], ecx
mov dword [ebp - 0xf0c], ebx
mov dword [ebp - 0xf04], eax
push 0
lea eax, [ebp - 0xf20]
push eax
push 0x36
lea eax, [ebp - 0x4c]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x1005e648
mov ebx, dword [ebp - 0xf20]
test ebx, ebx
je 0x1005e642
lea ecx, [ebx + 2]
mov eax, 0x55555556
imul ecx
lea ecx, [ebp - 0x4c]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ebx
shl eax, 2
push eax
mov eax, dword [edi + 0x124]
add eax, dword [ebp - 0xf0c]
push eax
call fcn.1005ce50
mov ebx, dword [ebp - 0xf0c]
mov ecx, eax
mov eax, dword [edi + 0x124]
add esp, 8
add eax, ebx
mov byte [eax + ecx], 0xd
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx + 1], 0xa
add ecx, 2
mov eax, dword [edi + 0x124]
add eax, ebx
add ebx, ecx
mov dword [ebp - 0xf0c], ebx
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0xf04]
add ecx, 2
add ecx, dword [ebp - 0xf20]
mov dword [ebp - 0xf04], ecx
cmp ecx, 0x1400
mov ecx, dword [ebp - 0xf18]
jb 0x1005e560
push dword [ebp - 0xf10]
xor ebx, ebx
xor eax, eax
mov ecx, edi
mov dword [ebp - 0xf0c], ebx
mov dword [ebp - 0xf04], eax
call fcn.10062450
mov ecx, dword [ebp - 0xf18]
jmp 0x1005e560
mov ebx, dword [ebp - 0xf0c]
test ebx, ebx
je 0x1005e659
push dword [ebp - 0xf10]
mov ecx, edi
call fcn.10062450
push dword [ebp - 0xf18]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [ebp - 0xf04], 1
jmp 0x1005e40e
cmp dword [ebp - 0xf14], 0
je 0x1005ee9f
cmp dword [ebp - 0xf24], 0xffffffff
je 0x1005ee9f
mov ecx, dword [ebp - 0xf34]
mov edx, dword [ebp - 0xf2c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp dword [edx + 4], ecx
jb 0x1005ee7a
ja 0x1005e6b2
cmp dword [edx], eax
jbe 0x1005ee7a
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov eax, 0x10000
push eax
push 0
call ebx
mov esi, dword [sym.imp.KERNEL32.DLL_HeapAlloc]
push eax
call esi
mov dword [ebp - 0xf0c], eax
test eax, eax
je 0x1005ee7f
xor ecx, ecx
je 0x1005e6f6
mov eax, 0x10000
add eax, 0x36
push eax
push ecx
call ebx
push eax
call esi
mov ebx, eax
mov dword [ebp - 0xf18], ebx
jmp 0x1005e6fe
mov ebx, eax
mov dword [ebp - 0xf18], eax
test ebx, ebx
je 0x1005ee5b
push 0x5c
push dword [ebp - 0xf14]
call fcn.1007b71d
push dword [ebp + 0x14]
lea eax, [ebp - 0xf00]
push dword [ebp - 0xf40]
push str._s__x
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0xf38]
lea edx, [ebp - 0xf00]
lea ecx, [ebp - 0xd00]
call fcn.1005dee0
lea ecx, [ebp - 0xd00]
add esp, 0x1c
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e751
sub ecx, edx
mov eax, 0x5f
sar ecx, 1
mov word [ebp + ecx*2 - 0xd00], ax
lea esi, [ebp + ecx*2 - 0xcfe]
mov ecx, dword [ebp - 0xf3c]
test ecx, ecx
je 0x1005e792
sub esi, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x1005e780
jmp 0x1005e7e8
xor eax, eax
je 0x1005e7e8
mov ecx, esi
lea edx, [ecx + 2]
jmp 0x1005e7a0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e7a0
sub ecx, edx
xor eax, eax
sar ecx, 1
mov word [esi + ecx*2 + 0x12], ax
test ecx, ecx
je 0x1005e7cd
lea ebx, [ebx]
mov ax, word [esi + ecx*2 - 2]
dec ecx
mov word [esi + ecx*2 + 0x12], ax
jne 0x1005e7c0
xor eax, eax
push eax
push str._08x
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, 0x5f
add esp, 0xc
mov word [esi + 0x10], ax
lea eax, [ebp - 0xd00]
push 0x2e
push eax
call fcn.1007b71d
mov esi, eax
add esp, 8
test esi, esi
jne 0x1005e876
lea esi, [ebp - 0xd00]
lea ecx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x1005e810
sub esi, ecx
sar esi, 1
cmp dword [ebp - 0xf1c], 0
je 0x1005e92f
mov eax, dword [ebp + 0x30]
lea ecx, [ebp - 0xd00]
inc eax
lea ecx, [ecx + esi*2]
push eax
push dword [ebp - 0xf08]
mov dword [ebp - 0xf2c], ecx
push str.._04d__04d
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0xf2c]
add esp, 0x10
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e860
sub ecx, edx
sar ecx, 1
add esi, ecx
jmp 0x1005e92f
cmp dword [ebp - 0xf1c], 0
je 0x1005e8e4
lea esi, [ebp - 0xd00]
lea ecx, [esi + 2]
jmp 0x1005e890
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x1005e890
mov eax, dword [ebp + 0x30]
sub esi, ecx
inc eax
sar esi, 1
push eax
push dword [ebp - 0xf08]
lea ecx, [ebp - 0xd00]
lea ecx, [ecx + esi*2]
push str.._04d__04d
push ecx
mov dword [ebp - 0xf2c], ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0xf2c]
add esp, 0x10
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1005e8d1
sub ecx, edx
sar ecx, 1
add esi, ecx
jmp 0x1005e92f
push 0x100c5bf4
add esi, 2
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x1005e910
mov ecx, 0x100c5bfc
sub esi, ecx
mov edi, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x1005e900
lea esi, [ebp - 0xd00]
lea ecx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x1005e920
sub esi, ecx
sar esi, 1
push 0
push 0
lea eax, [esi + esi]
push eax
lea eax, [ebp - 0x24c]
push eax
push esi
lea eax, [ebp - 0xd00]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
xor ecx, ecx
mov byte [ebp + eax - 0x24c], 0
lea ebx, [ebx]
mov al, byte [ebp + ecx - 0x24c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x501], al
test al, al
jne 0x1005e960
lea eax, [ebp - 0x500]
push eax
push eax
push str.__MESSAGE__ID__54yg6f6h6y456345
push str.___s_r_nContent_Type:_application_x_msdownload__name__s__r_nContent_Transfer_Encoding:_base64_r_nContent_Disposition:_attachment__filename__s__r_n_r_n
push dword [edi + 0x124]
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [ebp - 0xf10]
add esp, 0x14
mov ecx, edi
push esi
call fcn.10062450
mov eax, dword [ebp - 0xf34]
cmp dword [eax + 4], 0
ja 0x1005e9b5
cmp dword [eax], 0
jbe 0x1005e9ca
push 0
push 0
push dword [eax + 4]
push dword [eax]
push dword [ebp - 0xf24]
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
mov edx, dword [ebp - 0xf0c]
xor esi, esi
xor eax, eax
mov dword [ebp - 0xf28], esi
cmp edx, ebx
jne 0x1005ebec
xor ebx, ebx
mov dword [ebp - 0xf08], eax
xor ecx, ecx
mov dword [ebp - 0xf14], ebx
mov dword [ebp - 0xf04], ecx
cmp dword [ebp + 0x40], 0
je 0x1005ea10
mov eax, 0x10000
sub eax, ecx
add eax, esi
cmp eax, dword [ebp + 0x40]
ja 0x1005eb57
push 0
lea eax, [ebp - 0xf20]
push eax
mov eax, 0x10000
sub eax, ecx
push eax
lea eax, [ecx + edx]
push eax
push dword [ebp - 0xf24]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x1005eb51
mov eax, dword [ebp - 0xf20]
test eax, eax
je 0x1005eb51
add esi, eax
add eax, dword [ebp - 0xf04]
mov dword [ebp - 0xf28], esi
xor esi, esi
mov dword [ebp - 0xf20], eax
mov dword [ebp - 0xf04], esi
cmp esi, eax
jae 0x1005eb3a
mov ebx, eax
sub ebx, esi
cmp ebx, 0x36
jae 0x1005eaa2
test ebx, ebx
je 0x1005ea92
mov eax, dword [ebp - 0xf18]
mov edx, ebx
mov cl, byte [eax + esi]
lea eax, [eax + 1]
mov byte [eax - 1], cl
dec edx
jne 0x1005ea80
mov eax, dword [ebp - 0xf20]
add esi, ebx
mov dword [ebp - 0xf04], ebx
mov ebx, dword [ebp - 0xf14]
jmp 0x1005ea63
mov eax, dword [edi + 0x124]
mov edx, 0x36
mov ecx, dword [ebp - 0xf18]
mov ebx, dword [ebp - 0xf14]
add eax, ebx
push 0x48
push eax
lea ecx, [esi + ecx]
call fcn.1005ce50
mov ecx, eax
add esp, 8
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx], 0xd
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx + 1], 0xa
add ecx, 2
mov eax, dword [edi + 0x124]
add eax, ebx
add ebx, ecx
mov dword [ebp - 0xf14], ebx
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xf08]
add eax, 0x38
mov dword [ebp - 0xf08], eax
cmp eax, 0x1400
jb 0x1005eb2c
push dword [ebp - 0xf10]
xor ebx, ebx
mov ecx, edi
mov dword [ebp - 0xf14], ebx
mov dword [ebp - 0xf08], ebx
call fcn.10062450
mov eax, dword [ebp - 0xf20]
add esi, 0x36
jmp 0x1005ea63
mov ecx, dword [ebp - 0xf04]
mov edx, dword [ebp - 0xf0c]
mov esi, dword [ebp - 0xf28]
jmp 0x1005e9f8
mov ecx, dword [ebp - 0xf04]
test ecx, ecx
je 0x1005ee11
add ecx, 2
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebp - 0xf18]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf04]
shl eax, 2
push eax
mov eax, dword [edi + 0x124]
add eax, ebx
push eax
call fcn.1005ce50
mov ecx, eax
mov esi, dword [ebp - 0xf10]
mov eax, dword [edi + 0x124]
add esp, 8
add eax, ebx
mov byte [eax + ecx], 0xd
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx + 1], 0xa
add ecx, 2
mov eax, dword [edi + 0x124]
add eax, ebx
add ebx, ecx
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xf08]
add eax, 2
add eax, dword [ebp - 0xf04]
cmp eax, 0x1400
jb 0x1005ee17
push esi
mov ecx, edi
xor ebx, ebx
call fcn.10062450
jmp 0x1005ee17
xor ebx, ebx
mov dword [ebp - 0xf04], eax
xor esi, esi
mov dword [ebp - 0xf08], ebx
mov dword [ebp - 0xf1c], esi
mov ecx, dword [ebp + 0x40]
test ecx, ecx
je 0x1005ec24
mov eax, dword [ebp - 0xf28]
mov ebx, 0x10000
add eax, ebx
mov ebx, dword [ebp - 0xf08]
cmp eax, ecx
ja 0x1005ed7d
push 0
lea eax, [ebp - 0xf20]
push eax
mov eax, 0x10000
push eax
push edx
push dword [ebp - 0xf24]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x1005ed7d
mov edx, dword [ebp - 0xf20]
test edx, edx
je 0x1005ed7d
mov ecx, dword [ebp - 0xf0c]
lea eax, [ebp - 0xf14]
add dword [ebp - 0xf28], edx
push eax
mov eax, dword [ebp - 0xf18]
add eax, esi
push eax
xor eax, eax
push 0
push eax
call fcn.1005d0c0
mov eax, dword [ebp - 0xf14]
add esp, 0x10
add eax, esi
xor esi, esi
mov dword [ebp - 0xf14], eax
mov dword [ebp - 0xf1c], esi
cmp esi, eax
jae 0x1005ed6c
mov ebx, eax
sub ebx, esi
cmp ebx, 0x36
jae 0x1005ecd4
test ebx, ebx
je 0x1005ecc4
mov ecx, dword [ebp - 0xf18]
mov edx, ebx
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
dec edx
jne 0x1005ecb2
mov eax, dword [ebp - 0xf14]
add esi, ebx
mov dword [ebp - 0xf1c], ebx
mov ebx, dword [ebp - 0xf08]
jmp 0x1005ec95
mov eax, dword [edi + 0x124]
mov edx, 0x36
mov ecx, dword [ebp - 0xf18]
mov ebx, dword [ebp - 0xf08]
add eax, ebx
push 0x48
push eax
lea ecx, [esi + ecx]
call fcn.1005ce50
mov ecx, eax
add esp, 8
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx], 0xd
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx + 1], 0xa
add ecx, 2
mov eax, dword [edi + 0x124]
add eax, ebx
add ebx, ecx
mov dword [ebp - 0xf08], ebx
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xf04]
add eax, 0x38
mov dword [ebp - 0xf04], eax
cmp eax, 0x1400
jb 0x1005ed5e
push dword [ebp - 0xf10]
xor ebx, ebx
mov ecx, edi
mov dword [ebp - 0xf08], ebx
mov dword [ebp - 0xf04], ebx
call fcn.10062450
mov eax, dword [ebp - 0xf14]
add esi, 0x36
jmp 0x1005ec95
mov esi, dword [ebp - 0xf1c]
mov edx, dword [ebp - 0xf0c]
jmp 0x1005ec02
mov ecx, dword [ebp - 0xf1c]
test ecx, ecx
je 0x1005ee11
add ecx, 2
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebp - 0xf18]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf1c]
shl eax, 2
push eax
mov eax, dword [edi + 0x124]
add eax, ebx
push eax
call fcn.1005ce50
mov ecx, eax
add esp, 8
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx], 0xd
mov eax, dword [edi + 0x124]
add eax, ebx
mov byte [eax + ecx + 1], 0xa
add ecx, 2
mov eax, dword [edi + 0x124]
add eax, ebx
add ebx, ecx
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xf04]
add eax, 2
add eax, dword [ebp - 0xf1c]
cmp eax, 0x1400
jb 0x1005ee11
mov esi, dword [ebp - 0xf10]
mov ecx, edi
push esi
xor ebx, ebx
call fcn.10062450
jmp 0x1005ee17
mov esi, dword [ebp - 0xf10]
test ebx, ebx
je 0x1005ee23
push esi
mov ecx, edi
call fcn.10062450
mov eax, dword [ebp - 0xf18]
mov ebx, 1
cmp dword [ebp - 0xf0c], eax
je 0x1005ee61
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov esi, dword [sym.imp.KERNEL32.DLL_HeapFree]
push eax
call esi
push dword [ebp - 0xf0c]
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call esi
jmp 0x1005ee85
mov ebx, dword [ebp - 0xf04]
push dword [ebp - 0xf0c]
mov esi, dword [sym.imp.KERNEL32.DLL_HeapFree]
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call esi
jmp 0x1005ee85
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ebx, dword [ebp - 0xf04]
push dword [ebp - 0xf24]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp - 0xf30]
mov dword [eax], 0xffffffff
jmp 0x1005eea5
mov ebx, dword [ebp - 0xf04]
test ebx, ebx
je 0x1005eed3
push str.__MESSAGE__ID__54yg6f6h6y456345
push str._r_n___s___r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0x10
mov ecx, edi
push dword [ebp - 0xf10]
call fcn.10062450
xor esi, esi
xor ecx, ecx
xor eax, eax
lea esp, [esp]
cmp dword [eax + 0x100db750], 0xd
je 0x1005eef6
add eax, 0x14
inc ecx
cmp eax, 0x140
jb 0x1005eee0
jmp 0x1005ef00
lea eax, [ecx + ecx*4]
lea esi, [eax*4 + 0x100db750]
push str._r_n._r_n
push 0x2800
push dword [edi + 0x124]
call fcn.1007ac47
add esp, 0xc
mov ecx, edi
push esi
call fcn.10062450
push esi
mov ecx, edi
call fcn.10062b70
mov eax, dword [ebp - 0xf28]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1007aa10
mov esp, ebp
pop ebp
ret 0x3c