Function at 0x5bae0a89
Capabilities:
Delete file
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2b4
mov eax, dword [0x5bb70c3c]
mov edx, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x21c], eax
xor eax, eax
push 0xc
mov dword [ebp - 0x240], ebx
lea edi, [ebp - 0x23c]
stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x2b4]
push edx
mov dword [ebp - 0x270], edx
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x214], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x248], ebx
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x22c], ebx
rep stosd dword es:[edi], eax
call fcn.5bae065b
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5ba4ec00
push dword [0x5bb73824]
call edi
cmp eax, ebx
mov dword [ebp - 0x26c], eax
jne 0x5bae0b52
mov edi, 0x80004005
jmp 0x5bae1450
push 0x5ba4ec10
push dword [0x5bb73824]
call edi
cmp eax, ebx
mov dword [ebp - 0x274], eax
je 0x5bae0b48
push 0x5ba4ec20
push dword [0x5bb73824]
call edi
cmp eax, ebx
mov dword [ebp - 0x27c], eax
je 0x5bae0b48
lea eax, [ebp - 0x20c]
push eax
push ebx
push 6
or esi, 0xffffffff
push esi
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jl 0x5bae0bdc
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
cmp eax, ebx
mov dword [ebp - 0x238], eax
jne 0x5bae0bbd
mov edi, 0x8007000e
jmp 0x5bae1450
cmp dword [ebp - 0x20c], ebx
je 0x5bae0bdc
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
lea eax, [ebp - 0x20c]
push eax
push ebx
push 0xe
push esi
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jl 0x5bae0c2b
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
cmp eax, ebx
mov dword [ebp - 0x248], eax
je 0x5bae0bb3
cmp dword [ebp - 0x20c], ebx
je 0x5bae0c2b
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
lea eax, [ebp - 0x20c]
push eax
push ebx
push 0x19
push esi
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jl 0x5bae0c7e
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
cmp eax, ebx
mov dword [ebp - 0x24c], eax
je 0x5bae0bb3
cmp dword [ebp - 0x20c], ebx
je 0x5bae0c7e
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
mov edi, dword [ebp + 0x10]
cmp edi, 2
je 0x5bae0ca7
cmp edi, 5
je 0x5bae0ca7
lea eax, [ebp - 0x20c]
push eax
push ebx
push 5
push esi
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jge 0x5bae0cc7
jmp 0x5bae0d02
lea eax, [ebp - 0x20c]
push eax
push ebx
push 0x31
push esi
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jge 0x5bae0cc7
mov dword [ebp - 0x20c], ebx
cmp dword [ebp - 0x20c], ebx
je 0x5bae0d08
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
cmp eax, ebx
mov dword [ebp - 0x234], eax
je 0x5bae0bb3
cmp dword [ebp - 0x20c], ebx
je 0x5bae0d08
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
cmp edi, 2
je 0x5bae0ea3
cmp edi, 4
jne 0x5bae0ffc
mov eax, dword [ebp - 0x24c]
lea ecx, [ebp - 0x240]
push ecx
push eax
push ebx
push 4
call sub.INETCOMM.dll_MimeOleParseRfc822Address
test eax, eax
jne 0x5bae0ffc
mov eax, dword [ebp - 0x240]
mov ecx, eax
imul ecx, ecx, 0x118
lea eax, [eax + eax*2]
shl eax, 3
mov dword [ebp - 0x210], eax
push ecx
lea eax, [ebp - 0x264]
push eax
mov dword [ebp - 0x254], ecx
call fcn.5baaee23
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x240]
cmp eax, ebx
mov edi, dword [ebp - 0x264]
lea ecx, [eax + eax*2]
lea ecx, [edi + ecx*8]
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x258], ebx
jbe 0x5bae0fe1
add edi, 8
xor esi, esi
mov dword [ebp - 0x250], edi
mov dword [ebp - 0x268], esi
mov eax, dword [ebp - 0x23c]
mov ecx, dword [esi + eax + 0x14]
cmp ecx, ebx
je 0x5bae0dca
mov eax, dword [0x5bb73714]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x14]
mov eax, dword [ebp - 0x23c]
mov dword [esi + eax + 0x14], ebx
mov eax, dword [ebp - 0x23c]
mov dword [esi + eax + 0x14], ebx
mov eax, dword [ebp - 0x23c]
lea eax, [esi + eax + 0x1c]
mov ecx, dword [eax]
mov dword [eax], ebx
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x254]
mov dword [ebp - 0x25c], ecx
jge 0x5bae0fa1
lea eax, [ebp - 0x214]
push eax
push ebx
push 8
push ecx
push dword [ebp - 0x270]
push dword [0x5bb73698]
call dword [ebp - 0x274]
test eax, eax
jne 0x5bae0fa1
mov eax, dword [ebp - 0x214]
mov dword [eax + 4], 1
mov eax, dword [ebp - 0x214]
mov eax, dword [eax]
mov dword [edi - 8], eax
mov eax, dword [ebp - 0x214]
mov eax, dword [eax + 4]
mov dword [edi - 4], eax
mov eax, dword [ebp - 0x214]
mov eax, dword [eax + 0x10]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x214]
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x5bae0ebc
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
add dword [ebp - 0x210], esi
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x254]
jg 0x5bae0f89
mov eax, dword [ebp - 0x228]
mov dword [edi], eax
mov ecx, dword [ebp - 0x214]
push 0x80
push dword [ecx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add dword [ebp - 0x228], esi
jmp 0x5bae0ebe
mov eax, dword [ebp - 0x248]
cmp eax, ebx
jne 0x5bae0d20
mov eax, dword [ebp - 0x238]
jmp 0x5bae0d20
mov dword [edi], ebx
mov eax, dword [ebp - 0x214]
mov eax, dword [eax + 0xc]
cmp eax, ebx
je 0x5bae0f13
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
add dword [ebp - 0x210], esi
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x254]
jg 0x5bae0f89
mov eax, dword [ebp - 0x228]
mov dword [edi + 4], eax
mov ecx, dword [ebp - 0x214]
push 0x80
push dword [ecx + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add dword [ebp - 0x228], esi
jmp 0x5bae0f16
mov dword [edi + 4], ebx
mov eax, dword [ebp - 0x214]
mov eax, dword [eax + 0x10]
cmp eax, ebx
je 0x5bae0f73
add dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x254]
jg 0x5bae0f89
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x250]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x214]
mov ecx, dword [edx + 0x10]
mov esi, dword [edx + 0x14]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x214]
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x228], eax
jmp 0x5bae0f76
mov dword [edi + 0xc], ebx
add dword [ebp - 0x250], 0x18
inc dword [ebp - 0x294]
mov edi, dword [ebp - 0x250]
push dword [ebp - 0x214]
call dword [ebp - 0x26c]
mov esi, dword [ebp - 0x268]
mov dword [ebp - 0x214], ebx
cmp dword [ebp - 0x25c], ebx
je 0x5bae0fba
mov eax, dword [0x5bb73714]
push dword [ebp - 0x25c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
inc dword [ebp - 0x258]
mov eax, dword [ebp - 0x258]
add esi, 0x40
cmp eax, dword [ebp - 0x240]
mov dword [ebp - 0x268], esi
jb 0x5bae0da6
mov edi, dword [ebp - 0x264]
mov eax, dword [0x5bb7382c]
lea edx, [ebp - 0x240]
push edx
mov dword [ebp - 0x290], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov edi, dword [ebp + 0x10]
cmp edi, 2
je 0x5bae100e
cmp edi, 5
je 0x5bae101a
mov eax, dword [ebp - 0x234]
jmp 0x5bae1068
push 0x100
push 0x5ba4e7c4
jmp 0x5bae1024
push 0x100
push 0x5ba4e7cc
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
cmp dword [ebp - 0x234], ebx
je 0x5bae1062
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, 0xff
sub ecx, eax
push ecx
push dword [ebp - 0x234]
lea eax, [ebp + eax - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x104]
lea edx, [ebp - 0x284]
push edx
lea edx, [ebp - 0x218]
push edx
push 7
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xac]
test eax, eax
jl 0x5bae1225
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x218]
call sub.MSOERT2.dll_HrStreamToByte
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x20c]
shr eax, 1
mov word [ecx + eax*2], bx
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
cmp eax, ebx
mov dword [ebp - 0x2ac], eax
je 0x5bae0bb3
mov eax, dword [ebp - 0x218]
cmp eax, ebx
je 0x5bae10fc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x218], ebx
push 0x5b
call fcn.5ba5c700
test eax, eax
mov edi, dword [ebp + 0x10]
je 0x5bae1225
cmp edi, 2
je 0x5bae111c
cmp edi, 5
jne 0x5bae1225
lea eax, [ebp - 0x218]
push eax
call sub.INETCOMM.dll_MimeOleCreateVirtualStream
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x218]
mov esi, dword [eax]
push ebx
push dword [ebp - 0x2ac]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push dword [ebp - 0x2ac]
push dword [ebp - 0x218]
call dword [esi + 0x10]
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x218]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x20]
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
push dword [ebp - 0x218]
call sub.MSOERT2.dll_HrRewindStream
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
lea eax, [ebp - 0x284]
push eax
push 1
push dword [ebp - 0x21c]
call fcn.5babcc20
mov ecx, dword [ebp - 0x238]
neg eax
sbb eax, eax
inc eax
cmp ecx, ebx
jne 0x5bae11b5
mov ecx, 0x5ba4cc94
push ecx
push eax
push 1
lea eax, [ebp - 0x244]
push eax
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
call fcn.5bae0748
cmp dword [ebp - 0x2ac], ebx
je 0x5bae11f0
mov eax, dword [0x5bb73714]
push dword [ebp - 0x2ac]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x2ac], ebx
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x2ac]
push eax
push dword [ebp - 0x244]
call sub.MSOERT2.dll_HrStreamToByte
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x280]
mov edi, dword [ebp + 0x10]
mov byte [ecx + eax], bl
cmp edi, 2
je 0x5bae1411
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax]
lea edx, [ebp - 0x230]
push edx
lea edx, [ebp - 0x224]
push edx
push eax
call dword [ecx + 0xc0]
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
cmp dword [ebp - 0x224], ebx
je 0x5bae140e
lea eax, [ebp - 0x208]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov eax, dword [ebp - 0x224]
lea eax, [eax + eax*2]
shl eax, 3
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.5baaee23
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x224]
mov edi, dword [ebp - 0x220]
lea ecx, [eax + eax*2]
shl ecx, 3
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x224]
cmp eax, ebx
mov dword [ebp - 0x210], ebx
jbe 0x5bae13fc
mov esi, dword [ebp - 0x220]
add esi, 0xc
push 0x104
push esi
call fcn.5baaee23
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
push dword [esi]
lea eax, [ebp - 0x208]
push ebx
push 0x5ba45ae0
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
mov edi, dword [ebp - 0x210]
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax]
lea edx, [ebp - 0x22c]
push edx
mov edx, dword [ebp - 0x230]
push 0x5ba51618
push dword [edx + edi*4]
push eax
call dword [ecx + 0x40]
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
push dword [esi]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [eax]
push 6
push eax
call dword [ecx + 0xa4]
mov edi, eax
cmp edi, ebx
jl 0x5bae1450
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
je 0x5bae1363
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x22c], ebx
mov ecx, dword [ebp - 0x210]
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [ebp - 0x230]
push ebx
push 0x5ba4fe00
push dword [eax + ecx*4]
push dword [ebp - 0x21c]
call sub.INETCOMM.dll_MimeOleGetBodyPropW
test eax, eax
jl 0x5bae13c5
push dword [ebp - 0x20c]
push ebx
call sub.MSOERT2.dll_PszToANSI
mov edi, eax
cmp edi, ebx
je 0x5bae0bb3
cmp dword [ebp - 0x20c], ebx
je 0x5bae13cb
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
jmp 0x5bae13cb
mov edi, dword [ebp - 0x260]
or dword [esi - 4], 0xffffffff
mov dword [esi - 0xc], ebx
mov dword [esi - 8], ebx
mov dword [esi + 4], edi
mov dword [esi + 8], ebx
mov eax, dword [ebp - 0x224]
add esi, 0x18
inc dword [ebp - 0x210]
cmp dword [ebp - 0x210], eax
mov dword [ebp - 0x260], ebx
jb 0x5bae12d5
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x288], eax
mov edi, dword [ebp + 0x10]
xor eax, eax
cmp edi, 5
jne 0x5bae141f
mov eax, 0x20000000
jmp 0x5bae1429
cmp edi, 2
jne 0x5bae1429
mov eax, 0x10000000
sub edi, 4
neg edi
push eax
sbb edi, edi
and edi, 8
push edi
lea eax, [ebp - 0x2b4]
push eax
push dword [ebp - 0x270]
push dword [0x5bb73698]
call dword [ebp - 0x27c]
mov edi, eax
cmp dword [ebp - 0x220], ebx
je 0x5bae14cf
cmp dword [ebp - 0x224], ebx
mov dword [ebp - 0x210], ebx
jbe 0x5bae14be
xor esi, esi
mov edx, dword [ebp - 0x220]
mov eax, dword [0x5bb73714]
push dword [esi + edx + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x220]
mov eax, dword [esi + eax + 0xc]
cmp eax, ebx
je 0x5bae14a7
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, dword [ebp - 0x220]
mov eax, dword [0x5bb73714]
push dword [esi + edx + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
inc dword [ebp - 0x210]
mov eax, dword [ebp - 0x210]
add esi, 0x18
cmp eax, dword [ebp - 0x224]
jb 0x5bae1468
mov eax, dword [0x5bb73714]
push dword [ebp - 0x220]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp dword [ebp - 0x214], ebx
je 0x5bae14e3
push dword [ebp - 0x214]
call dword [ebp - 0x26c]
cmp dword [ebp - 0x290], ebx
je 0x5bae1502
mov eax, dword [0x5bb73714]
push dword [ebp - 0x290]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x290], ebx
cmp dword [ebp - 0x2ac], ebx
je 0x5bae1521
mov eax, dword [0x5bb73714]
push dword [ebp - 0x2ac]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x2ac], ebx
cmp dword [ebp - 0x20c], ebx
je 0x5bae1540
mov eax, dword [0x5bb73714]
push dword [ebp - 0x20c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x20c], ebx
cmp dword [ebp - 0x248], ebx
je 0x5bae1559
mov eax, dword [0x5bb73714]
push dword [ebp - 0x248]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp dword [ebp - 0x234], ebx
je 0x5bae1572
mov eax, dword [0x5bb73714]
push dword [ebp - 0x234]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp dword [ebp - 0x238], ebx
je 0x5bae158b
mov eax, dword [0x5bb73714]
push dword [ebp - 0x238]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp dword [ebp - 0x230], ebx
je 0x5bae15aa
mov eax, dword [0x5bb73714]
push dword [ebp - 0x230]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x230], ebx
cmp dword [ebp - 0x24c], ebx
je 0x5bae15c3
mov eax, dword [0x5bb73714]
push dword [ebp - 0x24c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x244]
cmp eax, ebx
je 0x5bae15d9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x244], ebx
mov eax, dword [ebp - 0x218]
cmp eax, ebx
je 0x5bae15ef
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x218], ebx
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
je 0x5bae1605
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x22c], ebx
call fcn.5bae0713
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.5bb3f314
leave
ret 0xc