Function at 0x545020
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1020], ebx
mov dword [ebp - 0xc], ebx
mov esi, ecx
mov edi, edx
mov byte [ebp - 1], al
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x545350
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
test esi, esi
jbe 0x54532f
mov eax, edi
and eax, 0x1ff
test eax, eax
jne 0x54532f
test ebx, ebx
jge 0x545095
cmp dword [ebp + 0xc], 0
je 0x545085
mov eax, dword [ebp + 0xc]
call fcn.00544bf8
mov ebx, eax
jmp 0x545095
cmp byte [ebp - 1], 0
je 0x545095
mov al, byte [ebp - 1]
call fcn.00544b20
mov ebx, eax
test ebx, ebx
jle 0x54532f
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0x101c], ebx
mov byte [ebp - 0x1018], 0
lea edx, [ebp - 0x101c]
xor ecx, ecx
mov eax, 0x54536c
call fcn.0040aca8
lea eax, [ebp - 0x1020]
mov ecx, dword [ebp - 0xc]
mov edx, 0x545388
call fcn.00404890
mov eax, dword [ebp - 0x1020]
call fcn.00404a44
push eax
call sub.kernel32.dll_OutputDebugStringA
push 0
push 0xa0000000
push 3
push 0
push 3
push 0x40000000
mov eax, dword [ebp - 0xc]
call fcn.00404a44
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x54532f
xor edx, edx
push ebp
push 0x545328
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x545307
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x10]
call fcn.00544c54
mov ecx, eax
test ecx, ecx
jbe 0x5452f3
mov eax, edi
xor edx, edx
div ecx
test edx, edx
jne 0x5451f5
cmp ecx, esi
jb 0x545155
mov ebx, ecx
jmp 0x54516f
mov eax, esi
xor edx, edx
div ecx
test edx, edx
jne 0x545163
mov ebx, esi
jmp 0x54516f
mov eax, esi
xor edx, edx
div ecx
mov ebx, eax
inc ebx
imul ebx, ecx
xor ecx, ecx
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.00409ee4
cmp esi, ebx
jae 0x5451e0
cmp ebx, 0x1000
ja 0x5451cb
lea edx, [ebp - 0x1014]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00409e8c
lea edx, [ebp - 0x1014]
mov eax, dword [ebp + 0x10]
mov ecx, esi
call fcn.00402a14
xor ecx, ecx
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.00409ee4
lea edx, [ebp - 0x1014]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
mov dword [ebp - 8], eax
jmp 0x5452f3
mov edx, dword [ebp + 0x10]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
mov dword [ebp - 8], eax
jmp 0x5452f3
mov edx, dword [ebp + 0x10]
mov ecx, esi
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
mov dword [ebp - 8], eax
jmp 0x5452f3
mov eax, edi
xor edx, edx
div ecx
imul ecx
mov dword [ebp - 0x14], eax
lea ebx, [edi + esi]
sub ebx, dword [ebp - 0x14]
mov eax, ebx
xor edx, edx
div ecx
test edx, edx
je 0x54521b
mov eax, ebx
xor edx, edx
div ecx
inc eax
imul ecx
mov ebx, eax
xor ecx, ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.00409ee4
cmp ebx, 0x1000
ja 0x545276
lea edx, [ebp - 0x1014]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00409e8c
sub edi, dword [ebp - 0x14]
lea edx, [ebp + edi - 0x1014]
mov eax, dword [ebp + 0x10]
mov ecx, esi
call fcn.00402a14
xor ecx, ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.00409ee4
lea edx, [ebp - 0x1014]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
mov dword [ebp - 8], eax
jmp 0x5452f3
lea edx, [ebp - 0x1014]
mov ecx, 0x1000
mov eax, dword [ebp - 0x10]
call fcn.00409e8c
mov eax, edi
sub eax, dword [ebp - 0x14]
mov ecx, 0x1000
sub ecx, eax
lea edx, [ebp + eax - 0x1014]
mov eax, dword [ebp + 0x10]
call fcn.00402a14
xor ecx, ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.00409ee4
lea edx, [ebp - 0x1014]
mov ecx, 0x1000
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
mov dword [ebp - 8], eax
mov eax, edi
sub eax, dword [ebp - 0x14]
mov edx, 0x1000
sub edx, eax
mov ecx, esi
sub ecx, edx
sub edi, dword [ebp - 0x14]
mov eax, 0x1000
sub eax, edi
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
add edx, eax
mov eax, dword [ebp - 0x10]
call fcn.00409eb8
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jle 0x5452fd
mov dword [ebp - 8], esi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x545311
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54532f
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x545357
lea eax, [ebp - 0x1020]
call fcn.00404574
lea eax, [ebp - 0xc]
call fcn.00404574
ret