Function at 0x4509e0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e01c2
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x150
mov eax, dword [0x534094]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0xf0], esi
mov edi, dword [ebx + 8]
push edi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xd8], edi
call fcn.0044fe10
test al, al
jne 0x450a4e
push edi
mov ecx, esi
call fcn.0044ffe0
mov edx, dword [esi + 0x1c]
lea eax, [edi + 0x10]
lea ecx, [esi + 0xc]
mov dword [ebp - 0xf8], eax
mov esi, dword [eax]
mov eax, closesocket
sub eax, edx
cmp eax, esi
jb 0x45191b
cmp dword [ecx + 0x14], 0x10
jb 0x450a76
mov ecx, dword [ecx]
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x450a80
mov eax, dword [edi]
push esi
push eax
push edx
push ecx
push ecx
push dword [ebp - 0xec]
lea ecx, [ebp - 0x44]
call fcn.00449b30
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x44]
mov esi, dword [ebp - 0x30]
mov eax, esi
mov edx, dword [ebp - 0x34]
sub eax, edx
cmp eax, 1
jb 0x450acb
cmp esi, 0x10
lea eax, [edx + 1]
mov dword [ebp - 0x34], eax
cmovae ecx, dword [ebp - 0x44]
mov al, byte [0x52a5f8]
mov byte [ecx + edx], al
lea eax, [ebp - 0x44]
mov byte [ecx + edx + 1], 0
jmp 0x450adf
push 1
push 0x52a5f8
push dword [ebp - 0xec]
push 1
call fcn.00448ed0
mov dword [ebp - 0x90], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x8c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x90], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x450b5d
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x450b53
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451920
push ecx
push edx
call fcn.004b43c2
add esp, 8
push edi
xor eax, eax
mov dword [ebp - 0x34], 0
push 8
push 0x52a8b4
lea edx, [ebp - 0xa0]
mov dword [ebp - 0x30], 0xf
lea ecx, [ebp - 0x140]
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xfc], eax
call fcn.00453350
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x450ba2
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 1
push 3
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [ebp - 0x12c]
mov esi, eax
mov dword [ebp - 0xdc], esi
cmp ecx, 0x10
jb 0x450bfa
mov edx, dword [ebp - 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x450bf0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451925
push ecx
push edx
call fcn.004b43c2
add esp, 8
push edi
push 8
push 0x52a8c0
lea edx, [ebp - 0xa0]
mov dword [ebp - 0x130], 0
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x12c], 0xf
mov byte [ebp - 0x140], 0
call fcn.00453350
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x450c39
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 1
push 3
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0xe8], eax
cmp ecx, 0x10
jb 0x450c95
mov edx, dword [ebp - 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x450c85
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45192a
push ecx
push edx
call fcn.004b43c2
mov eax, dword [ebp - 0xe8]
add esp, 8
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x158], 0
cmp esi, 0xffffffff
je 0x4518ea
cmp eax, 0xffffffff
je 0x4518ea
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
push 0x2c
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.004b438d
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x2c], eax
push 0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 3
push eax
push 4
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x450f8c
cmp dword [ebp - 0x20], 0
jne 0x450d4f
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x450d4f
lea ecx, [ebp - 0x2c]
call fcn.00451970
lea ecx, [ebp - 0xa0]
call fcn.004436f0
jmp 0x4518ca
mov eax, dword [ebp - 0x24]
xor esi, esi
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x48], esi
test eax, eax
je 0x450f8c
mov edi, dword [ebp - 0xdc]
nop dword [eax + eax]
push 0
lea eax, [ebp - 0x20]
mov dword [ebp - 0xd0], 0
push eax
push 4
lea eax, [ebp - 0xd0]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x450f86
mov edi, dword [ebp - 0xd0]
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x44], xmm0
cmp edi, 0x7fffffff
ja 0x45191b
mov dword [ebp - 0x30], 0xf
cmp edi, 0x10
jae 0x450de4
push edi
lea eax, [ebp - 0x44]
mov dword [ebp - 0x34], edi
push 0
push eax
call fcn.004b6520
mov byte [ebp + edi - 0x44], 0
jmp 0x450e7a
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x450e00
mov ecx, closesocket
mov esi, closesocket
add ecx, 0x23
jmp 0x450e20
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x450e3e
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x45192f
push ecx
call fcn.004b438d
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x451920
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x450e4f
test eax, eax
je 0x450e4d
push eax
call fcn.004b438d
add esp, 4
jmp 0x450e4f
xor eax, eax
push edi
push 0
push eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], esi
call fcn.004b6520
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x48]
mov byte [eax + edi], 0
mov edi, dword [ebp - 0xd0]
add esp, 0xc
push 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0x30], 0x10
lea eax, [ebp - 0x44]
push ecx
cmovae eax, dword [ebp - 0x44]
push edi
mov edi, dword [ebp - 0xdc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x450f7a
push 1
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0xe4], eax
lea edx, [ebp - 0x44]
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x118]
call fcn.004533e0
add esp, 4
push eax
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x2c]
call fcn.00454ad0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x104]
cmp ecx, 0x10
jb 0x450f26
mov edx, dword [ebp - 0x118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x450f1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451920
push ecx
push edx
call fcn.004b43c2
add esp, 8
push 1
push 0
push 8
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x450f6b
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x450f61
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451920
push ecx
push edx
call fcn.004b43c2
add esp, 8
inc esi
mov dword [ebp - 0x48], esi
cmp esi, dword [ebp - 0x24]
jb 0x450d70
jmp 0x450f86
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 3
call fcn.004436f0
mov edi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xf8]
mov ecx, closesocket
mov eax, dword [eax]
sub ecx, eax
cmp ecx, 1
jb 0x451934
cmp dword [edi + 0x14], 0x10
jb 0x450fac
mov edi, dword [edi]
push 1
push 0x52a5f8
push eax
push edi
push ecx
push dword [ebp - 0xec]
lea ecx, [ebp - 0x114]
call fcn.00449b30
mov byte [ebp - 4], 6
lea edx, [ebp - 0x114]
mov byte [ebp - 0xe4], 0
lea ecx, [ebp - 0x60]
push dword [ebp - 0xe4]
call fcn.00454c20
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
lea edx, [ebp - 0x60]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x80]
call fcn.004531c0
add esp, 4
test eax, eax
jne 0x451939
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4c]
cmp ecx, 8
jb 0x45104c
mov edx, dword [ebp - 0x60]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x451042
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451949
push ecx
push edx
call fcn.004b43c2
add esp, 8
xor eax, eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x100]
cmp ecx, 0x10
jb 0x45109e
mov edx, dword [ebp - 0x114]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451094
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451949
push ecx
push edx
call fcn.004b43c2
add esp, 8
mov ecx, dword [ebp - 0x7c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
test ecx, ecx
je 0x4510b4
lock inc dword [ecx + 4]
mov edi, dword [ebp - 0x80]
mov esi, ecx
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
test ecx, ecx
je 0x4510d3
lock inc dword [ecx + 4]
xor eax, eax
movlpd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xb4], eax
test ecx, ecx
je 0x45111d
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x45111b
mov eax, dword [ecx]
call dword [eax]
or ecx, 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0x7c]
lock xadd dword [ecx + 8], eax
jne 0x45111b
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov byte [ebp - 4], 0xd
cmp edi, eax
je 0x4517d8
mov ecx, edi
call fcn.0044e900
test al, al
jne 0x4517b0
lea eax, [edi + 0x20]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x114]
mov dword [ebp - 0xd8], eax
push ecx
mov ecx, eax
call fcn.0044dd50
push ecx
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xf
push ecx
mov ecx, eax
call fcn.00452fa0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x100]
cmp ecx, 8
jb 0x4511a7
mov edx, dword [ebp - 0x114]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x45119d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45194e
push ecx
push edx
call fcn.004b43c2
add esp, 8
mov edi, dword [ebp - 0x4c]
lea eax, [ebp - 0x60]
mov esi, dword [ebp - 0x60]
lea ecx, [ebp - 0x128]
cmp edi, 0x10
push str..hdr
cmovae eax, esi
setae byte [ebp - 0xd1]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x124], eax
call fcn.00451ef0
test al, al
jne 0x45172f
cmp byte [ebp - 0xd1], 0
lea eax, [ebp - 0x60]
push str..src
cmovne eax, esi
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x11c], eax
call fcn.00451ef0
test al, al
jne 0x45172f
cmp byte [ebp - 0xd1], al
je 0x45124b
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x451241
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451967
push ecx
push esi
call fcn.004b43c2
add esp, 8
push ecx
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 4], 0xd
call fcn.00452fa0
push ecx
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x114]
push eax
mov byte [ebp - 4], 0x11
call fcn.00452fa0
mov eax, dword [ebp - 0xf8]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x34]
movups xmmword [ebp - 0x78], xmm0
mov eax, dword [eax]
inc eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
cmp ecx, eax
jb 0x451953
mov esi, dword [ebp - 0x104]
sub ecx, eax
mov edx, dword [ebp - 0x30]
cmp ecx, esi
mov edi, dword [ebp - 0x44]
cmovb esi, ecx
cmp edx, 0x10
lea ecx, [ebp - 0x44]
cmovae ecx, edi
cmp esi, 0x10
jb 0x451315
test eax, eax
je 0x4512de
add eax, ecx
push esi
push eax
push ecx
call fcn.004b6680
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov edi, dword [ebp - 0x44]
cmp edx, 0x10
mov dword [ebp - 0x34], esi
lea eax, [ebp - 0x44]
cmovae eax, edi
mov byte [eax + esi], 0
mov eax, 0xf
movups xmm0, xmmword [ebp - 0x44]
mov byte [ebp - 0x44], 0
movups xmmword [ebp - 0x78], xmm0
movq xmm0, qword [ebp - 0x34]
movq qword [ebp - 0x68], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], eax
jmp 0x451324
add eax, ecx
lea ecx, [ebp - 0x78]
push esi
push eax
call fcn.0044ac80
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x100]
cmp ecx, 0x10
jb 0x451365
mov edx, dword [ebp - 0x114]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451358
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451958
push ecx
push edx
call fcn.004b43c2
mov eax, dword [ebp - 0x30]
add esp, 8
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0xf
mov byte [ebp - 0x114], 0
mov byte [ebp - 4], 0x15
cmp eax, 0x10
jb 0x4513b7
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4513ad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451958
push ecx
push edx
call fcn.004b43c2
add esp, 8
push ecx
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.00452fa0
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
push 0
cmovae eax, dword [ebp - 0x60]
push 0x80
push 3
push 0
push 1
push 3
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [ebp - 0x4c]
mov edi, eax
mov dword [ebp - 0xe0], edi
cmp ecx, 0x10
jb 0x451436
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45142c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45195d
push ecx
push edx
call fcn.004b43c2
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
cmp edi, 0xffffffff
jne 0x45148e
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x4517b0
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45147f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451962
push ecx
push edx
call fcn.004b43c2
add esp, 8
jmp 0x4517b0
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00454c50
mov esi, dword [ebp - 0x15c]
cmp byte [esi + 0xd], 0
jne 0x4514e3
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x4514bb
mov eax, dword [eax]
cmp dword [ebp - 0x64], 0x10
lea ecx, [ebp - 0x78]
push edx
cmovae ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x68]
push eax
call fcn.00448c90
add esp, 8
test eax, eax
je 0x4514de
shr eax, 0x1f
test al, al
jne 0x4514e6
mov eax, dword [ebp - 0x2c]
jmp 0x4514eb
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x2c]
mov esi, eax
push 2
push 0
push 0
push dword [ebp - 0xe8]
cmp esi, eax
je 0x45158a
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xb0], eax
call fcn.0044e950
push 0
push 0
push dword [esi + 0x28]
mov esi, dword [ebp - 0xdc]
push esi
mov dword [ebp - 0xa4], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0xb0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45155b
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0xa4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x451669
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
mov dword [ebp - 0x48], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xa8], eax
call fcn.0044e950
mov esi, dword [ebp - 0xdc]
push 2
push 0
push 0
push esi
mov dword [ebp - 0xac], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0x48]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x78]
test eax, eax
jne 0x4515e5
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
call fcn.004436e0
push 0
lea ecx, [ebp - 0x20]
push ecx
push dword [ebp - 0x48]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x451610
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45163b
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0xac]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x451666
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
inc dword [ebp - 0x24]
push 2
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0
push 0
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
call fcn.004b43d0
add esp, 4
mov edi, eax
lea eax, [ebp - 0x20]
push 0
push eax
push esi
push edi
push dword [ebp - 0xe0]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4516b9
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
push 0
lea eax, [ebp - 0x20]
push eax
push esi
push edi
push dword [ebp - 0xe8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4516e2
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
push edi
call fcn.004b4388
add esp, 4
push dword [ebp - 0xe0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x60]
push eax
call fcn.0044dd30
mov ecx, eax
call fcn.004436e0
push eax
call fcn.004bd6c8
add esp, 4
lea ecx, [ebp - 0x60]
call fcn.004436f0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.004436f0
jmp 0x4517b0
cmp byte [ebp - 0xd1], 0
je 0x451763
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x451759
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451967
push ecx
push esi
call fcn.004b43c2
add esp, 8
mov dword [ebp - 4], 0xd
jmp 0x4517b0
lea ecx, [ebp - 0x88]
call fcn.0044f390
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], edi
jmp 0x451121
or edi, 0xffffffff
test esi, esi
je 0x4517fe
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4517fe
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x4517fe
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x451823
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x451823
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x451823
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xdc]
cmp dword [ebp - 0x24], eax
je 0x451865
mov eax, dword [ebp - 0xf0]
push 0
push 0
push 0
push esi
mov dword [eax + 8], 1
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x20]
push eax
push 4
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x451876
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0xe8]
call esi
mov eax, dword [ebp - 0x2c]
push dword [eax + 4]
lea eax, [ebp - 0x2c]
push eax
mov ecx, eax
call fcn.00454ce0
push 0x2c
push dword [ebp - 0x2c]
call fcn.004b43c2
mov ecx, dword [ebp - 0x8c]
add esp, 8
cmp ecx, 0x10
jb 0x4518ca
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4518c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451916
push ecx
push edx
call fcn.004b43c2
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004b437a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x4518ca
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4518c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4518c0
call fcn.004bc740
call fcn.00442790
call fcn.004bc740
call fcn.004bc740
call fcn.004bc740
call fcn.004426f0
call fcn.00442790
lea ecx, [ebp - 0x60]
mov edx, eax
push ecx
mov ecx, str.recursive_directory_iterator::recursive_directory_iterator
call fcn.0044e870
call fcn.004bc740
call fcn.004bc740
call fcn.00448620
call fcn.004bc740
call fcn.004bc740
call fcn.004bc740
call fcn.004bc740
int3