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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ab6fc
mov eax, dword fs:[0]
push eax
mov eax, 0x1080
call fcn.0053f090
mov eax, dword [0x677e70]
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, edx
mov dword [ebp - 0x1080], eax
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1088], ecx
test edi, edi
je 0x40e685
test eax, eax
je 0x40e685
test esi, esi
je 0x40e685
test ecx, ecx
je 0x40e685
push ecx
push eax
push esi
push edi
lea eax, [ebp - 0x84c]
push str._p___s___s_____s___MD5:_s
push eax
call fcn.0040cfa0
add esp, 0x14
mov dword [ebp - 4], 0
push dword [eax]
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
mov eax, dword [ebp - 0x84c]
lea ecx, [ebp - 0x844]
cmp eax, ecx
je 0x40dda0
push eax
call fcn.0053eac5
add esp, 4
mov ecx, 4
mov dword [ebp - 0x108c], 4
call fcn.0040ce70
lea ecx, [ebp - 0x1078]
mov dword [ebp - 4], 1
call fcn.00405440
mov byte [ebp - 4], 2
lea eax, [ebp - 0x106c]
push 0x650d10
xorps xmm0, xmm0
mov dword [ebp - 0x106c], 0
push esi
xor ebx, ebx
mov dword [ebp - 0x1060], 0
push eax
mov dword [ebp - 0x1064], 0
mov dword [ebp - 0x1068], 0
mov dword [ebp - 0x1058], 0
mov dword [ebp - 0x1074], 0
mov dword [ebp - 0x44], ebx
movq qword [ebp - 0x40], xmm0
call fcn.00585fe9
add esp, 0xc
test eax, eax
je 0x40dec0
call fcn.00581f9e
lea ecx, [ebp - 0x1054]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 3
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x84c]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650d18
push eax
call fcn.0040cfa0
add esp, 0x80c
mov byte [ebp - 4], 4
push dword [eax]
push ebx
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
mov eax, dword [ebp - 0x84c]
lea ecx, [ebp - 0x844]
cmp eax, ecx
je 0x40de9a
push eax
call fcn.0053eac5
add esp, 4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x104c]
mov eax, dword [ebp - 0x1054]
cmp eax, ecx
je 0x40e511
push eax
call fcn.0053eac5
add esp, 4
jmp 0x40e511
push dword [ebp - 0x106c]
lea eax, [ebp - 0x38]
push 0x20
push 1
push eax
call fcn.0058621e
add esp, 0x10
cmp eax, 0x20
jae 0x40def4
push ecx
push 0x650d40
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
jmp 0x40e511
lea eax, [ebp - 0x38]
cmp dword [eax], 0x50424442
jne 0x40e665
cmp dword [eax + 4], 0x302e3156
jne 0x40e665
lea ecx, [ebp - 0x30]
call fcn.0040e6b0
lea ecx, [ebp - 0x28]
mov ebx, eax
call fcn.0040e6b0
mov edx, eax
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x105c], edx
call fcn.0040e6b0
mov dword [ebp - 0x1070], eax
test ebx, ebx
js 0x40e65a
test edx, edx
js 0x40e65a
test eax, eax
js 0x40e65a
push dword [ebp - 0x106c]
call fcn.00586344
push 0x650d10
lea eax, [ebp - 0x1060]
mov dword [ebp - 0x106c], 0
push esi
push eax
call fcn.00585fe9
add esp, 0x10
test eax, eax
je 0x40e013
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 5
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650d74
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 6
add esp, 0x80c
push dword [eax]
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
mov eax, dword [ebp - 0x1054]
lea ecx, [ebp - 0x104c]
cmp eax, ecx
je 0x40dfed
push eax
call fcn.0053eac5
add esp, 4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x844]
mov eax, dword [ebp - 0x84c]
cmp eax, ecx
je 0x40e50f
push eax
call fcn.0053eac5
add esp, 4
jmp 0x40e50f
push 0
push 0x20
push dword [ebp - 0x1060]
call fcn.00586699
add esp, 0xc
test eax, eax
je 0x40e06a
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 7
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650d9c
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 8
jmp 0x40dfbe
push 0x650d10
lea eax, [ebp - 0x1064]
push esi
push eax
call fcn.00585fe9
add esp, 0xc
test eax, eax
je 0x40e0c4
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 9
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push str.__tN_kSb
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 0xa
jmp 0x40dfbe
push 0
lea eax, [ebx + 0x20]
push eax
push dword [ebp - 0x1064]
call fcn.00586699
add esp, 0xc
test eax, eax
je 0x40e11d
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 0xb
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650d9c
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 0xc
jmp 0x40dfbe
push 0x650d10
lea eax, [ebp - 0x1068]
push esi
push eax
call fcn.00585fe9
add esp, 0xc
test eax, eax
je 0x40e177
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 0xd
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650de4
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 0xe
jmp 0x40dfbe
mov eax, dword [ebp - 0x105c]
add eax, 0x20
push 0
add eax, ebx
push eax
push dword [ebp - 0x1068]
call fcn.00586699
add esp, 0xc
test eax, eax
je 0x40e1d8
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 0xf
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650d9c
push eax
call fcn.0040cfa0
mov byte [ebp - 4], 0x10
jmp 0x40dfbe
push 0x650d10
lea eax, [ebp - 0x1058]
push edi
push eax
call fcn.00585fe9
add esp, 0xc
test eax, eax
jne 0x40e4fb
push 2
push eax
push dword [ebp - 0x1058]
call fcn.00586699
add esp, 0xc
test eax, eax
jne 0x40e4fb
push dword [ebp - 0x1058]
call fcn.00586c92
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1084], ebx
cmp ebx, 0xffffffff
je 0x40e4fb
lea ecx, [ebx + 1]
push ecx
call fcn.0053e9a2
mov esi, eax
add esp, 4
mov dword [ebp - 0x1074], esi
test esi, esi
je 0x40e4fb
push 0
push 0
push dword [ebp - 0x1058]
call fcn.00586699
add esp, 0xc
test eax, eax
jne 0x40e4fb
push dword [ebp - 0x1058]
push ebx
push 1
push esi
call fcn.0058621e
add esp, 0x10
cmp eax, ebx
jne 0x40e4fb
push dword [ebp - 0x1058]
call fcn.00586344
mov esi, dword [ebp - 0x1070]
mov dword [ebp - 0x1058], 0
lea eax, [esi + 1]
push eax
call fcn.0053e9a2
mov ebx, eax
add esp, 8
mov dword [ebp - 0x105c], ebx
test ebx, ebx
jne 0x40e2c8
push ecx
push 0x650e24
push eax
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
jmp 0x40e511
xor edi, edi
xor ebx, ebx
test esi, esi
jle 0x40e3c0
xor esi, esi
nop word [eax + eax]
push dword [ebp - 0x1060]
lea eax, [ebp - 0x18]
push 8
push 1
push eax
call fcn.0058621e
add esp, 0x10
cmp eax, 8
jne 0x40e45c
lea ecx, [ebp - 0x18]
call fcn.0040e6b0
mov dword [ebp + esi*4 - 0x44], eax
inc esi
cmp esi, 2
jle 0x40e2e0
mov esi, dword [ebp - 0x44]
lea eax, [esi + ebx]
mov dword [ebp - 0x107c], eax
cmp eax, dword [ebp - 0x1070]
jg 0x40e45c
push dword [ebp - 0x1064]
add ebx, dword [ebp - 0x105c]
push esi
push 1
push ebx
call fcn.0058621e
add esp, 0x10
cmp eax, esi
jne 0x40e45c
xor ecx, ecx
test esi, esi
jle 0x40e373
nop
lea eax, [ecx + edi]
test eax, eax
js 0x40e36e
cmp eax, dword [ebp - 0x1084]
jge 0x40e36e
mov edx, dword [ebp - 0x1074]
lea eax, [ecx + edi]
mov al, byte [eax + edx]
add byte [ebx + ecx], al
inc ecx
cmp ecx, esi
jl 0x40e350
mov eax, dword [ebp - 0x107c]
add edi, esi
mov esi, dword [ebp - 0x40]
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 0x1070]
jg 0x40e45c
push dword [ebp - 0x1068]
mov ecx, dword [ebp - 0x105c]
add eax, ecx
push esi
push 1
push eax
call fcn.0058621e
add esp, 0x10
cmp eax, esi
jne 0x40e45c
add edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x1070]
cmp ebx, esi
jl 0x40e2d4
push dword [ebp - 0x1060]
call fcn.00586344
push dword [ebp - 0x1064]
mov dword [ebp - 0x1060], 0
call fcn.00586344
push dword [ebp - 0x1068]
mov dword [ebp - 0x1064], 0
call fcn.00586344
mov edi, dword [ebp - 0x1080]
lea eax, [ebp - 0x1058]
push 0x650e34
push edi
push eax
mov dword [ebp - 0x1068], 0
call fcn.00585fe9
mov ebx, dword [ebp - 0x105c]
add esp, 0x18
test eax, eax
jne 0x40e47b
push dword [ebp - 0x1058]
push esi
push 1
push ebx
call fcn.00586ed5
add esp, 0x10
cmp eax, esi
jne 0x40e47b
push dword [ebp - 0x1058]
call fcn.00586344
add esp, 4
mov dword [ebp - 0x1058], 0
mov esi, 1
jmp 0x40e519
push ecx
push 0x650d5c
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
mov ebx, dword [ebp - 0x105c]
jmp 0x40e511
call fcn.00581f9e
lea ecx, [ebp - 0x84c]
push dword [eax]
call fcn.00413aa0
sub esp, 0x808
mov byte [ebp - 4], 0x11
mov esi, eax
mov edi, esp
lea eax, [ebp - 0x1054]
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
push 0x650e3c
push eax
call fcn.0040cfa0
add esp, 0x80c
mov byte [ebp - 4], 0x12
push dword [eax]
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
mov eax, dword [ebp - 0x1054]
lea ecx, [ebp - 0x104c]
cmp eax, ecx
je 0x40e4e6
push eax
call fcn.0053eac5
add esp, 4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x844]
mov eax, dword [ebp - 0x84c]
jmp 0x40deaa
push ecx
push 0x650e0c
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
xor ebx, ebx
mov edi, dword [ebp - 0x1080]
xor esi, esi
test ebx, ebx
je 0x40e526
push ebx
call fcn.0053eac5
add esp, 4
mov eax, dword [ebp - 0x1074]
test eax, eax
je 0x40e539
push eax
call fcn.0053eac5
add esp, 4
mov eax, dword [ebp - 0x106c]
test eax, eax
je 0x40e556
push eax
call fcn.00586344
add esp, 4
mov dword [ebp - 0x106c], 0
mov eax, dword [ebp - 0x1058]
test eax, eax
je 0x40e573
push eax
call fcn.00586344
add esp, 4
mov dword [ebp - 0x1058], 0
mov eax, dword [ebp - 0x1060]
test eax, eax
je 0x40e590
push eax
call fcn.00586344
add esp, 4
mov dword [ebp - 0x1060], 0
mov eax, dword [ebp - 0x1064]
test eax, eax
je 0x40e5ad
push eax
call fcn.00586344
add esp, 4
mov dword [ebp - 0x1064], 0
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x40e5ca
push eax
call fcn.00586344
add esp, 4
mov dword [ebp - 0x1068], 0
test esi, esi
je 0x40e628
push 3
mov edx, edi
lea ecx, [ebp - 0x107c]
call fcn.0042e640
add esp, 4
push eax
lea ecx, [ebp - 0x1078]
mov byte [ebp - 4], 0x13
call fcn.00405520
lea ecx, [ebp - 0x107c]
mov byte [ebp - 4], 2
call fcn.004041f0
push dword [ebp - 0x1088]
lea ecx, [ebp - 0x1078]
call fcn.0040ce30
test eax, eax
je 0x40e67e
push ecx
push 0x650e54
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
xor edi, edi
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov esi, dword [ebp - 0x1078]
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40e64c
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, 0xfffffffc
call fcn.0040ce70
mov eax, edi
jmp 0x40e687
push ecx
push 0x650d5c
jmp 0x40e501
push ecx
push 0x650d5c
push 0
call fcn.0043b710
mov ecx, eax
call fcn.0043bad0
jmp 0x40e511
mov edi, 1
jmp 0x40e62a
xor eax, eax
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.0053e4b1
mov esp, ebp
pop ebp
ret