Function at 0x487b10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4df4fd
mov eax, dword fs:[0]
push eax
mov eax, 0x22d4
call fcn.004a7f60
mov eax, dword [0x520404]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x2294], eax
add eax, 0x20
push eax
mov dword [ebp - 0x22e0], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x22dc], 1
push 0x2002
lea eax, [ebp - 0x2214]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004ac800
add esp, 0xc
lea eax, [ebp + 0x14]
push eax
push 0
push dword [ebp + 0x10]
lea eax, [ebp - 0x2214]
push 0xfff
push eax
call fcn.00418330
mov ecx, dword [eax]
push dword [eax + 4]
or ecx, 1
push ecx
call fcn.004b4913
add esp, 0x1c
test eax, eax
js 0x487bba
cmp eax, 0xfff
ja 0x487bba
jne 0x487bc3
xor eax, eax
mov word [ebp - 0x216], ax
push 0
call fcn.004b5299
mov dword [ebp - 0x22c0], eax
lea eax, [ebp - 0x22c0]
push eax
lea eax, [ebp - 0x2250]
mov dword [ebp - 0x22bc], edx
push eax
call fcn.004b8471
add esp, 0xc
test eax, eax
jne 0x4881c4
lea eax, [ebp - 0x2250]
push eax
push str._Y__m__d__H:_M:_S
lea eax, [ebp - 0x110]
push 0x80
push eax
call fcn.004b81c3
add esp, 0x10
test eax, eax
jne 0x487c1f
mov word [ebp - 0x110], ax
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x22a4]
call fcn.00477a20
lea eax, [ebp - 0x22c0]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x2274]
push eax
call fcn.004b8471
add esp, 8
test eax, eax
jne 0x4881ce
lea eax, [ebp - 0x2274]
push eax
push 0x4e67f8
lea eax, [ebp - 0x210]
push 0x80
push eax
call fcn.004b81c3
add esp, 0x10
test eax, eax
jne 0x487c7e
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x22a0]
call fcn.00477a20
mov byte [ebp - 4], 4
call fcn.004782d0
mov ecx, eax
test ecx, ecx
je 0x4881d8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x228c], eax
lea eax, [ebp - 0x2214]
mov byte [ebp - 4], 5
push eax
push esi
push dword [ebp - 0x22a4]
lea eax, [ebp - 0x228c]
push str._s___s___s_r_n
push eax
call fcn.00478110
mov esi, dword [ebp - 0x228c]
lea eax, [ebp - 0x2284]
push esi
push eax
call fcn.0048f600
add esp, 0x1c
mov edx, dword [eax]
mov ecx, edx
mov dword [ebp - 0x222c], 0
mov byte [ebp - 4], 6
mov dword [ebp - 0x221c], 0
mov dword [ebp - 0x2218], 0xf
lea edi, [ecx + 1]
mov byte [ebp - 0x222c], 0
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x487d20
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x222c]
call fcn.00418140
mov edx, dword [ebp - 0x2284]
or eax, 0xffffffff
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x487d58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x2218]
lea edx, [ebp - 0x222c]
mov ecx, dword [ebp - 0x222c]
cmp edi, 0x10
jb 0x487d71
mov edx, ecx
add edx, dword [ebp - 0x221c]
lea eax, [ebp - 0x222c]
mov dword [ebp - 0x2280], edx
mov dword [ebp - 0x2278], eax
cmp edi, 0x10
jb 0x487d96
mov eax, ecx
mov dword [ebp - 0x2278], ecx
xor ecx, ecx
xor edi, edi
mov ebx, edx
mov dword [ebp - 0x2290], edi
mov dword [ebp - 0x22b0], edi
mov dword [ebp - 0x2298], ecx
mov dword [ebp - 0x22ac], ecx
mov dword [ebp - 0x229c], ecx
mov dword [ebp - 0x22a8], ecx
mov dword [ebp - 0x227c], ecx
mov dword [ebp - 0x2288], ecx
sub ebx, eax
je 0x487e33
cmp ebx, 0x7fffffff
ja 0x4881e2
push ebx
lea ecx, [ebp - 0x22b0]
call fcn.00488790
mov edi, dword [ebp - 0x22b0]
push ebx
mov ebx, dword [ebp - 0x2278]
push ebx
push edi
mov dword [ebp - 0x2290], edi
call fcn.004ac280
mov ecx, dword [ebp - 0x22a8]
mov eax, edi
sub eax, ebx
mov dword [ebp - 0x2288], edi
add esp, 0xc
mov dword [ebp - 0x229c], ecx
add eax, dword [ebp - 0x2280]
mov dword [ebp - 0x2298], eax
mov dword [ebp - 0x22ac], eax
mov dword [ebp - 0x227c], eax
push str.6F5A289C58064c01A1D158C3E0B033A0
lea ecx, [ebp - 0x22d8]
mov byte [ebp - 4], 9
call fcn.00486330
mov ebx, eax
mov eax, dword [ebp - 0x227c]
xor edi, edi
mov ecx, dword [ebp - 0x2288]
sub eax, ecx
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x227c], eax
mov dword [ebp - 0x2278], 0
test eax, eax
jle 0x487f80
dec eax
xor esi, esi
mov dword [ebp - 0x22b8], eax
mov edi, edi
cmp edi, eax
jge 0x487f08
cmp byte [ecx + edi], 0xd
jne 0x487f08
cmp byte [ecx + edi + 1], 0xa
jne 0x487f08
xor esi, esi
lea eax, [ebx + 0xc]
add edi, 2
mov dword [ebp - 0x2278], esi
cmp ebx, eax
je 0x487f00
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub ecx, eax
mov edx, dword [ebx]
mov dword [ebp - 0x22b4], eax
mov eax, dword [ebx + 8]
sub eax, edx
mov dword [ebp - 0x2280], ecx
mov dword [ebp - 0x2284], edx
cmp ecx, eax
jbe 0x487ee1
push ecx
mov ecx, ebx
call fcn.00484050
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x2280]
mov dword [ebp - 0x2284], edx
push ecx
push dword [ebp - 0x22b4]
push edx
call fcn.004ac280
mov eax, dword [ebp - 0x2280]
add esp, 0xc
add eax, dword [ebp - 0x2284]
mov dword [ebx + 4], eax
cmp edi, dword [ebp - 0x227c]
jge 0x487f7a
inc esi
and esi, 0x800000ff
jns 0x487f19
dec esi
or esi, 0xffffff00
inc esi
mov ecx, dword [ebx]
mov dl, byte [ecx + esi]
movzx eax, dl
add eax, dword [ebp - 0x2278]
and eax, 0x800000ff
jns 0x487f35
dec eax
or eax, 0xffffff00
inc eax
mov dword [ebp - 0x2278], eax
movzx eax, byte [ecx + eax]
mov byte [ecx + esi], al
mov eax, dword [ebp - 0x2278]
mov byte [ecx + eax], dl
mov edx, dword [ebx]
movzx eax, byte [edx + eax]
movzx ecx, byte [edx + esi]
add ecx, eax
movzx eax, cl
mov ecx, dword [ebp - 0x2288]
movzx eax, byte [eax + edx]
xor byte [ecx + edi], al
inc edi
mov eax, dword [ebp - 0x22b8]
cmp edi, dword [ebp - 0x227c]
jl 0x487e80
mov esi, dword [ebp - 0x228c]
mov ecx, dword [ebp - 0x22cc]
mov byte [ebp - 4], 9
test ecx, ecx
je 0x487fdc
mov edx, dword [ebp - 0x22c4]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x487fb4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4881e7
push edx
push ecx
call fcn.004a7d37
add esp, 8
mov dword [ebp - 0x22cc], 0
mov dword [ebp - 0x22c8], 0
mov dword [ebp - 0x22c4], 0
mov ecx, dword [ebp - 0x22d8]
test ecx, ecx
je 0x488016
mov edx, dword [ebp - 0x22d0]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x48800c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4881e7
push edx
push ecx
call fcn.004a7d37
add esp, 8
mov edi, dword [ebp - 0x2294]
mov ebx, dword [ebp - 0x2290]
mov eax, dword [edi + 0x1c]
cmp eax, 0xffffffff
je 0x48804e
mov ecx, dword [ebp - 0x2298]
lea edx, [ebp - 0x2294]
push 0
push edx
sub ecx, ebx
mov dword [ebp - 0x2294], 0
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4881ec
mov ecx, dword [ebp - 0x22a0]
nop
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x488086
test dx, dx
je 0x488082
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x488086
add ecx, 4
add eax, 4
test dx, dx
jne 0x488060
xor eax, eax
jmp 0x48808b
sbb eax, eax
or eax, 1
test eax, eax
je 0x4880af
mov eax, dword [edi + 0x1c]
cmp eax, 0xffffffff
je 0x4880a5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x1c], 0
push dword [edi + 0x14]
mov ecx, edi
call fcn.004876d0
mov byte [ebp - 4], 8
test ebx, ebx
je 0x4880e7
mov ecx, dword [ebp - 0x229c]
mov eax, ebx
sub ecx, ebx
cmp ecx, 0x1000
jb 0x4880dd
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4881f6
push ecx
push ebx
call fcn.004a7d37
add esp, 8
mov edx, dword [ebp - 0x2218]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x488125
mov ecx, dword [ebp - 0x222c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x48811b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4881f6
push edx
push ecx
call fcn.004a7d37
add esp, 8
or ebx, 0xffffffff
mov dword [ebp - 0x221c], 0
mov dword [ebp - 0x2218], 0xf
add esi, 0xfffffff0
mov byte [ebp - 0x222c], 0
mov eax, ebx
mov byte [ebp - 4], 4
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x48815e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22a0]
mov eax, ebx
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x48817f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22a4]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x48819e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [edi + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7f4e
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00477ec0
push 0x80070057
call fcn.00477ec0
push 0x80004005
call fcn.00477ec0
call fcn.0040b480
call fcn.004af45f
push 0x80004005
call fcn.00477ec0
call fcn.004af45f
int3