Function at 0x450ea0
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 0x4e0652
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.004502d0
test al, al
jne 0x450f0e
push edi
mov ecx, esi
call fcn.004504a0
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 0x451ddb
cmp dword [ecx + 0x14], 0x10
jb 0x450f36
mov ecx, dword [ecx]
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x450f40
mov eax, dword [edi]
push esi
push eax
push edx
push ecx
push ecx
push dword [ebp - 0xec]
lea ecx, [ebp - 0x44]
call fcn.00449fc0
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 0x450f8b
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 0x450f9f
push 1
push 0x52a5f8
push dword [ebp - 0xec]
push 1
call fcn.00449360
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 0x45101d
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451013
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451de0
push ecx
push edx
call fcn.004b4852
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.00453810
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x451062
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 0x4510ba
mov edx, dword [ebp - 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4510b0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451de5
push ecx
push edx
call fcn.004b4852
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.00453810
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x4510f9
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 0x451155
mov edx, dword [ebp - 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451145
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451dea
push ecx
push edx
call fcn.004b4852
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 0x451daa
cmp eax, 0xffffffff
je 0x451daa
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
push 0x2c
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.004b481d
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 0x45144c
cmp dword [ebp - 0x20], 0
jne 0x45120f
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 0x45120f
lea ecx, [ebp - 0x2c]
call fcn.00451e30
lea ecx, [ebp - 0xa0]
call fcn.00443b80
jmp 0x451d8a
mov eax, dword [ebp - 0x24]
xor esi, esi
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x48], esi
test eax, eax
je 0x45144c
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 0x451446
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 0x451ddb
mov dword [ebp - 0x30], 0xf
cmp edi, 0x10
jae 0x4512a4
push edi
lea eax, [ebp - 0x44]
mov dword [ebp - 0x34], edi
push 0
push eax
call fcn.004b69b0
mov byte [ebp + edi - 0x44], 0
jmp 0x45133a
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x4512c0
mov ecx, closesocket
mov esi, closesocket
add ecx, 0x23
jmp 0x4512e0
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x4512fe
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x451def
push ecx
call fcn.004b481d
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x451de0
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x45130f
test eax, eax
je 0x45130d
push eax
call fcn.004b481d
add esp, 4
jmp 0x45130f
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.004b69b0
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 0x45143a
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.004538a0
add esp, 4
push eax
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x2c]
call fcn.00454f90
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x104]
cmp ecx, 0x10
jb 0x4513e6
mov edx, dword [ebp - 0x118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4513dc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451de0
push ecx
push edx
call fcn.004b4852
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 0x45142b
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451421
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451de0
push ecx
push edx
call fcn.004b4852
add esp, 8
inc esi
mov dword [ebp - 0x48], esi
cmp esi, dword [ebp - 0x24]
jb 0x451230
jmp 0x451446
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 3
call fcn.00443b80
mov edi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xf8]
mov ecx, closesocket
mov eax, dword [eax]
sub ecx, eax
cmp ecx, 1
jb 0x451df4
cmp dword [edi + 0x14], 0x10
jb 0x45146c
mov edi, dword [edi]
push 1
push 0x52a5f8
push eax
push edi
push ecx
push dword [ebp - 0xec]
lea ecx, [ebp - 0x114]
call fcn.00449fc0
mov byte [ebp - 4], 6
lea edx, [ebp - 0x114]
mov byte [ebp - 0xe4], 0
lea ecx, [ebp - 0x60]
push dword [ebp - 0xe4]
call fcn.004550e0
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.00453680
add esp, 4
test eax, eax
jne 0x451df9
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4c]
cmp ecx, 8
jb 0x45150c
mov edx, dword [ebp - 0x60]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x451502
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e09
push ecx
push edx
call fcn.004b4852
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 0x45155e
mov edx, dword [ebp - 0x114]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451554
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e09
push ecx
push edx
call fcn.004b4852
add esp, 8
mov ecx, dword [ebp - 0x7c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
test ecx, ecx
je 0x451574
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 0x451593
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 0x4515dd
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x4515db
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 0x4515db
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov byte [ebp - 4], 0xd
cmp edi, eax
je 0x451c98
mov ecx, edi
call fcn.0044edc0
test al, al
jne 0x451c70
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.0044e210
push ecx
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xf
push ecx
mov ecx, eax
call fcn.00453460
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x100]
cmp ecx, 8
jb 0x451667
mov edx, dword [ebp - 0x114]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x45165d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e0e
push ecx
push edx
call fcn.004b4852
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.004523b0
test al, al
jne 0x451bef
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.004523b0
test al, al
jne 0x451bef
cmp byte [ebp - 0xd1], al
je 0x45170b
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x451701
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e27
push ecx
push esi
call fcn.004b4852
add esp, 8
push ecx
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 4], 0xd
call fcn.00453460
push ecx
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x114]
push eax
mov byte [ebp - 4], 0x11
call fcn.00453460
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 0x451e13
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 0x4517d5
test eax, eax
je 0x45179e
add eax, ecx
push esi
push eax
push ecx
call fcn.004b6b10
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 0x4517e4
add eax, ecx
lea ecx, [ebp - 0x78]
push esi
push eax
call fcn.0044b140
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x100]
cmp ecx, 0x10
jb 0x451825
mov edx, dword [ebp - 0x114]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451818
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e18
push ecx
push edx
call fcn.004b4852
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 0x451877
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x45186d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e18
push ecx
push edx
call fcn.004b4852
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.00453460
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 0x4518f6
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4518ec
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e1d
push ecx
push edx
call fcn.004b4852
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
cmp edi, 0xffffffff
jne 0x45194e
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x451c70
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45193f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e22
push ecx
push edx
call fcn.004b4852
add esp, 8
jmp 0x451c70
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00455110
mov esi, dword [ebp - 0x15c]
cmp byte [esi + 0xd], 0
jne 0x4519a3
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x45197b
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.00449120
add esp, 8
test eax, eax
je 0x45199e
shr eax, 0x1f
test al, al
jne 0x4519a6
mov eax, dword [ebp - 0x2c]
jmp 0x4519ab
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 0x451a4a
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xb0], eax
call fcn.0044ee10
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 0x451a1b
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
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 0x451b29
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
mov dword [ebp - 0x48], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xa8], eax
call fcn.0044ee10
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 0x451aa5
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
call fcn.00443b70
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 0x451ad0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
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 0x451afb
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
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 0x451b26
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
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.004b4860
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 0x451b79
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
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 0x451ba2
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
push edi
call fcn.004b4818
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.0044e1f0
mov ecx, eax
call fcn.00443b70
push eax
call fcn.004bdb58
add esp, 4
lea ecx, [ebp - 0x60]
call fcn.00443b80
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00443b80
jmp 0x451c70
cmp byte [ebp - 0xd1], 0
je 0x451c23
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x451c19
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451e27
push ecx
push esi
call fcn.004b4852
add esp, 8
mov dword [ebp - 4], 0xd
jmp 0x451c70
lea ecx, [ebp - 0x88]
call fcn.0044f850
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], edi
jmp 0x4515e1
or edi, 0xffffffff
test esi, esi
je 0x451cbe
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x451cbe
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x451cbe
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x451ce3
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x451ce3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x451ce3
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 0x451d25
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 0x451d36
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.004551a0
push 0x2c
push dword [ebp - 0x2c]
call fcn.004b4852
mov ecx, dword [ebp - 0x8c]
add esp, 8
cmp ecx, 0x10
jb 0x451d8a
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451d80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x451dd6
push ecx
push edx
call fcn.004b4852
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.004b480a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x451d8a
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x451d80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x451d80
call fcn.004bcbd0
call fcn.00442c20
call fcn.004bcbd0
call fcn.004bcbd0
call fcn.004bcbd0
call fcn.00442b80
call fcn.00442c20
lea ecx, [ebp - 0x60]
mov edx, eax
push ecx
mov ecx, str.recursive_directory_iterator::recursive_directory_iterator
call fcn.0044ed30
call fcn.004bcbd0
call fcn.004bcbd0
call fcn.00448ab0
call fcn.004bcbd0
call fcn.004bcbd0
call fcn.004bcbd0
call fcn.004bcbd0
int3