Function at 0x457f50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cdbd5
mov eax, dword fs:[0]
push eax
sub esp, 0x678
mov eax, dword [0x510a50]
xor eax, esp
mov dword [esp + 0x670], eax
push ebx
push esi
push edi
mov eax, dword [0x510a50]
xor eax, esp
push eax
lea eax, [esp + 0x688]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov edi, ecx
mov dword [esp + 0x20], eax
lea eax, [edi + 4]
mov cl, byte [eax + 0x18]
lea esi, [eax + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
test cl, cl
je 0x457fb9
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
xor ebx, ebx
mov dword [esp + 0x690], ebx
cmp byte [edi + 0x20], bl
je 0x457fe0
cmp dword [edi + 0x34], ebx
jne 0x457fe0
mov al, byte [esi]
test al, al
je 0x458bd2
mov ecx, dword [esp + 0x14]
push ecx
jmp 0x458bcc
mov eax, dword [0x52ceac]
cmp eax, ebx
jg 0x457fee
mov eax, 1
mov edx, dword [edi + 0x84]
shr edx, 0x14
cmp edx, eax
jge 0x45800d
call sub.KERNEL32.DLL_GetCurrentProcessId
cmp dword [0x52d028], eax
je 0x458036
mov dword [0x52d028], eax
mov eax, dword [edi + 0x78]
cmp eax, ebx
je 0x45801d
push eax
call fcn.00485e52
add esp, 4
mov dword [edi + 0x78], ebx
mov dword [edi + 0x80], ebx
mov dword [edi + 0x84], ebx
mov dword [edi + 0x88], 0x1f
cmp dword [edi + 0x78], ebx
jne 0x458ac9
inc dword [edi + 0x88]
cmp dword [edi + 0x88], 0x20
jne 0x457fcc
lea edx, [ebp + 0xc]
push edx
lea eax, [esp + 0x20c]
push eax
mov dword [edi + 0x88], ebx
call fcn.0048748e
add esp, 8
push 1
push 0
push 0x100
lea ecx, [esp + 0x388]
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.004570b0
mov byte [esp + 0x690], 1
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov ecx, dword [0x52d028]
push 0
lea edx, [esp + 0x148]
lea eax, [esp + eax + 0x28]
push 2
push edx
mov byte [eax + 0x40], 0x30
mov dword [esp + 0x28], ecx
call fcn.004a00f3
mov esi, eax
mov eax, dword [esp + 0x228]
add esp, 0xc
add eax, 0x76c
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004089f0
mov ebx, eax
test ebx, ebx
je 0x4580e2
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x158]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x224]
add esp, 0xc
inc edx
push edx
push ebx
mov esi, eax
call fcn.004089f0
mov ebx, eax
test ebx, ebx
je 0x458124
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x138]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x220]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
push eax
mov cl, 0x2d
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x458170
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0xf8]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x21c]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
mov ebx, eax
test ebx, ebx
je 0x4581b1
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0xc8]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x218]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
mov ebx, eax
test ebx, ebx
je 0x4581f2
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x214]
add esp, 0xc
push ecx
push ecx
push edx
push ebx
call fcn.004089f0
push eax
mov cl, 0x2e
call fcn.0045a4c0
add esp, 8
push eax
call fcn.004089f0
push eax
xor cl, cl
call fcn.0045a4c0
add esp, 4
cmp byte [edi + 0x20], 0
je 0x458295
lea edx, [esp + 0x37c]
mov ecx, edi
call fcn.00457d10
test al, al
jne 0x4587c4
push str.Could_not_create_log_file
call fcn.004c3bfd
add esp, 4
lea eax, [esp + 0x37c]
push eax
push str.COULD_NOT_CREATE_LOGFILE__s__n
call fcn.00490a5f
add eax, 0x40
push eax
call fcn.00485fd6
add esp, 0xc
lea eax, [esp + 0x24]
mov byte [esp + 0x690], 0
call fcn.00457270
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx]
jmp 0x458bc3
mov eax, dword [0x52bbdc]
xor esi, esi
cmp eax, esi
jne 0x4582a5
mov eax, str.UNKNOWN
push eax
lea ecx, [esp + 0x268]
call fcn.00404f60
mov ebx, 0xf
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x258], esi
mov byte [esp + 0x248], 0
lea ecx, [esp + 0x248]
mov byte [esp + 0x690], 3
call fcn.004573b0
push 0xffffffffffffffff
push esi
push 0x5196ec
lea ecx, [esp + 0x238]
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x248], esi
mov byte [esp + 0x238], 0
call fcn.00404b00
mov byte [esp + 0x690], 4
cmp dword [esp + 0x23c], esi
jne 0x45832f
push 0xc
push str.invalid_user
lea ecx, [esp + 0x234]
call fcn.00404e60
lea ecx, [esp + 0x264]
push ecx
lea edx, [esp + 0x348]
push edx
call fcn.0045a410
mov ecx, eax
lea eax, [esp + 0x250]
lea esi, [esp + 0x288]
mov byte [esp + 0x698], 5
call fcn.0045a760
mov ecx, eax
lea esi, [esp + 0x314]
mov byte [esp + 0x698], 6
call fcn.0045a7a0
mov ecx, eax
lea eax, [esp + 0x234]
lea esi, [esp + 0x2f8]
mov byte [esp + 0x698], 7
call fcn.0045a760
push eax
mov edx, str..log.
lea esi, [esp + 0x2c4]
mov byte [esp + 0x69c], 8
call fcn.0045a300
add esp, 0xc
mov byte [esp + 0x690], 9
mov ecx, dword [edi + 0x7c]
mov edx, dword [ecx*4 + 0x4f8498]
push eax
lea esi, [esp + 0x2d8]
call fcn.0045a300
add esp, 4
mov ecx, eax
lea esi, [esp + 0x328]
mov byte [esp + 0x690], 0xa
call fcn.0045a7a0
push eax
lea ecx, [esp + 0x268]
mov byte [esp + 0x694], 0xb
call fcn.00407860
mov esi, 0x10
cmp dword [esp + 0x33c], esi
jb 0x45841c
mov edx, dword [esp + 0x328]
push edx
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x33c], ebx
mov dword [esp + 0x338], 0
mov byte [esp + 0x328], 0
cmp dword [esp + 0x2e8], esi
jb 0x45844f
mov eax, dword [esp + 0x2d4]
push eax
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2e4], 0
mov byte [esp + 0x2d4], 0
cmp dword [esp + 0x2cc], esi
jb 0x458482
mov ecx, dword [esp + 0x2b8]
push ecx
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x2c8], 0
mov byte [esp + 0x2b8], 0
cmp dword [esp + 0x304], esi
jb 0x4584b5
mov edx, dword [esp + 0x2f0]
push edx
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x304], ebx
mov dword [esp + 0x300], 0
mov byte [esp + 0x2f0], 0
cmp dword [esp + 0x320], esi
jb 0x4584e8
mov eax, dword [esp + 0x30c]
push eax
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x320], ebx
mov dword [esp + 0x31c], 0
mov byte [esp + 0x30c], 0
cmp dword [esp + 0x294], esi
jb 0x45851b
mov ecx, dword [esp + 0x280]
push ecx
call fcn.00460bb0
add esp, 4
mov byte [esp + 0x690], 4
mov dword [esp + 0x294], ebx
mov dword [esp + 0x290], 0
mov byte [esp + 0x280], 0
cmp dword [esp + 0x358], esi
jb 0x458556
mov edx, dword [esp + 0x344]
push edx
call fcn.00460bb0
add esp, 4
call fcn.004594e0
mov ebx, dword [eax]
mov dword [esp + 0x1c], eax
cmp ebx, dword [eax + 4]
je 0x458638
lea ebx, [ebx]
push 0x4f5e08
lea eax, [esp + 0x364]
push ebx
push eax
call fcn.0041aff0
add esp, 0xc
mov ecx, eax
lea eax, [esp + 0x264]
lea esi, [esp + 0x29c]
mov byte [esp + 0x690], 0xc
call fcn.0045a760
push eax
lea ecx, [edi + 0x24]
mov byte [esp + 0x694], 0xd
call fcn.00407860
cmp dword [esp + 0x2b0], 0x10
jb 0x4585ce
mov ecx, dword [esp + 0x29c]
push ecx
call fcn.00460bb0
add esp, 4
mov esi, 0x10
mov byte [esp + 0x690], 4
mov dword [esp + 0x2b0], 0xf
mov dword [esp + 0x2ac], 0
mov byte [esp + 0x29c], 0
cmp dword [esp + 0x374], esi
jb 0x458612
mov edx, dword [esp + 0x360]
push edx
call fcn.00460bb0
add esp, 4
lea edx, [esp + 0x37c]
mov ecx, edi
call fcn.00457d10
test al, al
jne 0x45873d
mov eax, dword [esp + 0x1c]
add ebx, 0x1c
cmp ebx, dword [eax + 4]
jne 0x458570
push str.Could_not_create_logging_file
call fcn.004c3bfd
add esp, 4
lea ecx, [esp + 0x37c]
push ecx
push str.COULD_NOT_CREATE_A_LOGGINGFILE__s_
call fcn.00490a5f
add eax, 0x40
push eax
call fcn.00485fd6
mov ebx, 0x10
add esp, 0xc
cmp dword [esp + 0x240], ebx
jb 0x458681
mov edx, dword [esp + 0x22c]
push edx
call fcn.00460bb0
add esp, 4
xor edi, edi
mov esi, 0xf
mov dword [esp + 0x240], esi
mov dword [esp + 0x23c], edi
mov byte [esp + 0x22c], 0
cmp dword [esp + 0x25c], ebx
jb 0x4586b7
mov eax, dword [esp + 0x248]
push eax
call fcn.00460bb0
add esp, 4
mov dword [esp + 0x25c], esi
mov dword [esp + 0x258], edi
mov byte [esp + 0x248], 0
cmp dword [esp + 0x278], ebx
jb 0x4586e6
mov ecx, dword [esp + 0x264]
push ecx
call fcn.00460bb0
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x278], esi
mov dword [esp + 0x274], edi
mov byte [esp + 0x264], 0
mov byte [esp + 0x690], 0
call fcn.00457180
lea edx, [esp + 0x7c]
push edx
mov dword [esp + 0x80], vtable.std::ios_base.0
call fcn.004a005c
mov eax, dword [esp + 0x1c]
mov cl, byte [eax]
add esp, 4
test cl, cl
je 0x458bd2
mov edx, dword [esp + 0x14]
push edx
jmp 0x458bcc
cmp dword [esp + 0x240], esi
jb 0x458756
mov eax, dword [esp + 0x22c]
push eax
call fcn.00460bb0
add esp, 4
xor ebx, ebx
mov dword [esp + 0x240], 0xf
mov dword [esp + 0x23c], ebx
mov byte [esp + 0x22c], bl
cmp dword [esp + 0x25c], esi
jb 0x45878a
mov ecx, dword [esp + 0x248]
push ecx
call fcn.00460bb0
add esp, 4
mov byte [esp + 0x690], 1
mov dword [esp + 0x25c], 0xf
mov dword [esp + 0x258], ebx
mov byte [esp + 0x248], bl
cmp dword [esp + 0x278], esi
jb 0x4587c4
mov edx, dword [esp + 0x264]
push edx
call fcn.00460bb0
add esp, 4
push 1
push 0
push 0x200
lea eax, [esp + 0x488]
push eax
lea ecx, [esp + 0x174]
push ecx
call fcn.004570b0
mov byte [esp + 0x690], 0xe
cmp dword [0x5196e0], 0
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 4]
lea eax, [esp + eax + 0x164]
mov byte [eax + 0x40], 0x30
jne 0x45882c
mov ecx, 0x5196d0
call fcn.004573b0
cmp dword [0x5196e0], 0
jne 0x45882c
push 9
push str._unknown_
mov ecx, 0x5196d0
call fcn.00404e60
push 0
lea eax, [esp + 0x118]
push 2
push eax
call fcn.004a00f3
mov ecx, dword [esp + 0x228]
add esp, 0xc
add ecx, 0x76c
push ecx
push ecx
lea edx, [esp + 0x16c]
push str.Log_file_created_at:
push edx
mov esi, eax
call fcn.00408db0
add esp, 0xc
push eax
call fcn.004089f0
push eax
mov cl, 0x2f
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x458884
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x128]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x224]
add esp, 0xc
inc edx
push edx
push ebx
mov esi, eax
call fcn.004089f0
push eax
mov cl, 0x2f
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4588d1
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0xd8]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x220]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
push eax
mov cl, 0x20
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x45891d
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0xe8]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x21c]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
push eax
mov cl, 0x3a
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x458969
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x108]
push 2
push ecx
call fcn.004a00f3
mov edx, dword [esp + 0x218]
add esp, 0xc
push edx
push ebx
mov esi, eax
call fcn.004089f0
push eax
mov cl, 0x3a
call fcn.0045a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4589b5
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push str.threadid_file:line__msg
push ecx
push str.Log_line_format:__IWEF_mmdd_hh:mm:ss.uuuuuu
push ecx
push 0x5196d0
push ecx
push str.Running_on_machine:
push ecx
mov ecx, dword [esp + 0x228]
push ecx
push ebx
call fcn.004089f0
push eax
mov cl, 0xa
call fcn.0045a4c0
add esp, 8
push eax
call fcn.00408db0
add esp, 0xc
push eax
call fcn.0045a070
push eax
mov cl, 0xa
call fcn.0045a4c0
add esp, 0x10
push eax
call fcn.00408db0
add esp, 0xc
push eax
call fcn.00408db0
push eax
mov cl, 0xa
call fcn.0045a4c0
add esp, 0xc
push eax
xor cl, cl
call fcn.0045a4c0
lea eax, [esp + 0x480]
add esp, 4
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x458a40
sub eax, edx
mov edx, dword [edi + 0x78]
push edx
mov esi, eax
push esi
lea eax, [esp + 0x484]
push 1
push eax
call fcn.00485c65
add dword [edi + 0x84], esi
add dword [edi + 0x80], esi
add esp, 0x10
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x690], 1
call fcn.00457180
lea ecx, [esp + 0x1bc]
mov esi, vtable.std::ios_base.0
push ecx
mov dword [esp + 0x1c0], esi
call fcn.004a005c
add esp, 4
lea ecx, [esp + 0x7c]
mov byte [esp + 0x690], 0
call fcn.00457180
lea edx, [esp + 0x7c]
push edx
mov dword [esp + 0x80], esi
call fcn.004a005c
mov esi, dword [esp + 0x1c]
add esp, 4
xor ebx, ebx
cmp byte [0x52bbb4], 0
jne 0x458ba3
call fcn.004896c4
mov esi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x20]
mov dword [eax], ebx
mov eax, dword [edi + 0x78]
push eax
push esi
push 1
push ecx
call fcn.00485c65
add esp, 0x10
cmp byte [0x52cecc], 0
je 0x458b26
call fcn.004896c4
cmp dword [eax], 0x1c
jne 0x458b26
mov byte [0x52bbb4], 1
mov edx, dword [esp + 0x18]
mov al, byte [edx]
test al, al
je 0x458bd2
mov ecx, dword [esp + 0x14]
push ecx
jmp 0x458bcc
add dword [edi + 0x80], esi
add dword [edi + 0x84], esi
cmp byte [ebp + 8], 0
mov eax, dword [edi + 0x80]
jne 0x458b5c
cmp eax, 0xf4240
jae 0x458b5c
call fcn.0045a930
cmp edx, dword [edi + 0x94]
jl 0x458b0e
jg 0x458b5c
cmp eax, dword [edi + 0x90]
jb 0x458b0e
mov eax, dword [edi + 0x78]
cmp eax, ebx
je 0x458b72
push eax
call fcn.00492282
add esp, 4
mov dword [edi + 0x80], ebx
mov eax, dword [0x52cfec]
push ebx
cdq
push 0xf4240
push edx
push eax
call fcn.0048b660
mov esi, eax
mov ebx, edx
call fcn.0045a930
add eax, esi
adc edx, ebx
mov dword [edi + 0x90], eax
mov dword [edi + 0x94], edx
jmp 0x458b0e
call fcn.0045a930
cmp edx, dword [edi + 0x94]
jl 0x458bc1
jg 0x458bba
cmp eax, dword [edi + 0x90]
jb 0x458bc1
mov byte [0x52bbb4], 0
mov dl, byte [esi]
test dl, dl
je 0x458bd2
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov ecx, dword [esp + 0x688]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x670]
xor ecx, esp
call fcn.004840ae
mov esp, ebp
pop ebp
ret 0x14