Function at 0x4022a0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42ebb7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3bc
mov eax, dword [0x43e370]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
call fcn.004243e2
xor ebx, ebx
cmp eax, ebx
je 0x4022e2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
mov esi, eax
jmp 0x4022e4
xor esi, esi
push 0x3f3
mov ecx, esi
mov dword [ebp - 0x32c], esi
call fcn.0042360b
push 0x3f0
mov ecx, esi
mov dword [ebp - 0x350], eax
call fcn.0042360b
push ebx
push ebx
push ebx
push ebx
push 1
push ebx
lea ecx, [ebp - 0x3c8]
mov dword [ebp - 0x370], eax
call fcn.00429bf5
mov dword [ebp - 4], ebx
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x344], eax
mov byte [ebp - 4], 1
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x358], eax
mov byte [ebp - 4], 2
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 3
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x334], eax
mov byte [ebp - 4], 4
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x330], eax
mov byte [ebp - 4], 5
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x34c], eax
push 0x43f398
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 6
call fcn.00401f00
push str.Status:_Requesting_file
push 0x3ee
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.00423653
mov eax, dword [ebp - 0x344]
push ebx
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
push 1
push eax
lea ecx, [ebp - 0x3c8]
call fcn.0042a503
mov edi, eax
push ebx
mov dword [ebp - 0x374], edi
mov dword [0x43f384], 1
call fcn.00411dc4
fld qword [0x4307c8]
add esp, 4
fstp qword [ebp - 0x3a4]
lea ecx, [ebp - 0x340]
push ecx
lea ecx, [ebp - 0x3a4]
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], edx
mov dword [ebp - 0x39c], ebx
call fcn.00401a10
mov edx, dword [edi]
push 2
push ebx
push ebx
mov ecx, edi
call dword [edx + 0x28]
push 0
push 0
mov dword [ebp - 0x340], eax
mov eax, dword [edi]
mov ebx, edx
push 0
mov ecx, edi
mov dword [ebp - 0x33c], ebx
call dword [eax + 0x28]
mov ecx, dword [ebp - 0x340]
mov eax, ebx
shrd ecx, eax, 0xa
shr eax, 0xa
push eax
push ecx
lea ecx, [ebp - 0x358]
push 0x430898
push ecx
call fcn.00401f70
add esp, 0x10
lea ecx, [ebp - 0x398]
call fcn.00425032
mov byte [ebp - 4], 8
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x318], eax
mov eax, dword [0x43f3a0]
push 0x430896
push eax
mov byte [ebp - 4], 9
call fcn.004118ad
add esp, 8
test eax, eax
je 0x40252a
mov ecx, dword [0x43f3a0]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x430894
lea edx, [ebp - 0x31c]
push 0x43f3a0
push edx
call fcn.00402040
add esp, 0xc
push eax
lea ecx, [ebp - 0x318]
mov byte [ebp - 4], 0xa
call fcn.00401f00
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40252a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [0x43f39c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x318]
call fcn.00401e70
mov eax, dword [ebp - 0x318]
push 0
push 0x9001
push eax
lea ecx, [ebp - 0x398]
call fcn.004252ca
mov edx, dword [edi]
lea eax, [ebp - 0x31c]
push eax
mov ecx, edi
mov dword [ebp - 0x338], 0
call dword [edx + 0x10]
push eax
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 0xb
call fcn.00401f00
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4025a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi]
lea ecx, [ebp - 0x31c]
push ecx
mov ecx, edi
call dword [eax + 0x10]
mov edx, dword [eax]
mov ebx, dword [edx - 0xc]
mov eax, dword [ebp - 0x31c]
cmp ebx, 0xa
setge bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4025dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, bl
je 0x4026b0
mov eax, dword [edi]
lea ecx, [ebp - 0x324]
push ecx
mov ecx, edi
call dword [eax + 0x10]
push 7
push 0
lea edx, [ebp - 0x31c]
mov bl, 0xc
push edx
mov ecx, eax
mov byte [ebp - 4], bl
call fcn.00401ce0
push eax
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 0xd
call fcn.00401f00
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40263d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402661
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x430890
lea eax, [ebp - 0x330]
push eax
lea ecx, [ebp - 0x324]
push ecx
call fcn.00402040
add esp, 0xc
push eax
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 0xe
call fcn.00401f00
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4026b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x43f3a4
lea eax, [ebp - 0x31c]
push str.Status:_Downloading
push eax
call fcn.00402100
add esp, 0xc
push str._Package
push eax
lea ecx, [ebp - 0x324]
mov bl, 0xf
push ecx
mov byte [ebp - 4], bl
call fcn.00402040
add esp, 0xc
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, esi
mov byte [ebp - 4], 0x10
call fcn.00423653
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
mov byte [ebp - 4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402719
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40273d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x350]
mov edx, dword [ecx + 0x1c]
push eax
push 0
push 0x406
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402760
mov esi, dword [ebp - 0x374]
mov eax, dword [esi]
push 0x200
lea ecx, [ebp - 0x314]
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x402b11
cmp dword [0x43f380], 1
jne 0x4027c6
lea ecx, [ebp - 0x398]
call fcn.00424fd0
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x4c]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x32c]
push str.Status:_Download_cancelled_by_user
push 0x3ee
call fcn.00423653
push 1
push ebx
call fcn.00424724
push ebx
call fcn.00411dc4
fld qword [0x4307c8]
lea ecx, [ebp - 0x388]
fstp qword [ebp - 0x380]
push ecx
mov dword [ebp - 0x378], ebx
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x384], edx
call fcn.00411941
add esp, 8
cmp eax, ebx
je 0x402875
mov dx, word [eax + 0x14]
add dx, 0x76c
mov word [ebp - 0x368], dx
mov cx, word [eax + 0x10]
inc cx
mov word [ebp - 0x366], cx
mov dx, word [eax + 0x18]
mov word [ebp - 0x364], dx
mov cx, word [eax + 0xc]
mov word [ebp - 0x362], cx
mov dx, word [eax + 8]
mov word [ebp - 0x360], dx
mov cx, word [eax + 4]
mov word [ebp - 0x35e], cx
mov dx, word [eax]
lea eax, [ebp - 0x380]
push eax
lea ecx, [ebp - 0x368]
push ecx
mov word [ebp - 0x35c], dx
mov word [ebp - 0x35a], bx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
test eax, eax
mov dword [ebp - 0x378], ebx
jne 0x40287f
mov dword [ebp - 0x378], 1
lea edx, [ebp - 0x3a4]
push edx
lea eax, [ebp - 0x3b0]
push eax
lea ecx, [ebp - 0x380]
call fcn.00401b70
fld qword [ebp - 0x3b0]
fcomp qword [0x4307c8]
fnstsw ax
test ah, 5
jp 0x4028b3
fld qword [0x4307c0]
jmp 0x4028b9
fld qword [0x4307b0]
fadd qword [ebp - 0x3b0]
fmul qword [0x4307b8]
call fcn.00411ba8
mov edx, dword [ebp - 0x338]
mov dword [ebp - 0x324], eax
fild dword [ebp - 0x324]
push edi
lea ecx, [ebp - 0x314]
add edx, edi
fstp qword [ebp - 0x320]
push ecx
lea ecx, [ebp - 0x398]
mov dword [ebp - 0x338], edx
call fcn.00424d85
mov ebx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x350]
mov eax, dword [edx + 0x1c]
push 0
push ebx
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x33c]
mov esi, dword [0x43f390]
mov eax, ebx
imul eax, eax, 0x64
push ecx
mov ecx, dword [ebp - 0x340]
cdq
push ecx
push edx
add esi, edi
push eax
mov dword [0x43f390], esi
call fcn.00411e70
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
cdq
mov esi, eax
mov eax, dword [ebp - 0x338]
mov ebx, edx
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [ebp - 0x324], eax
push edi
fild dword [ebp - 0x324]
push ecx
lea edx, [ebp - 0x34c]
push 0x430898
fdiv qword [ebp - 0x320]
push edx
fstp qword [ebp - 0x328]
call fcn.00401f70
add esp, 0x10
push ebx
push esi
lea eax, [ebp - 0x354]
push 0x430898
push eax
call fcn.00401f70
fld qword [ebp - 0x328]
fcomp qword [0x4307c8]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x4029e6
fld qword [ebp - 0x328]
sub esp, 8
fstp qword [esp]
lea ecx, [ebp - 0x334]
push str._0.1f
push ecx
call fcn.00401f70
add esp, 0x10
jmp 0x4029fa
lea edx, [ebp - 0x334]
push 0x43083c
push edx
call fcn.00401f70
add esp, 8
lea eax, [ebp - 0x34c]
push eax
lea ecx, [ebp - 0x348]
push str.Progress:
push ecx
call fcn.00402100
add esp, 0xc
push 0x43082c
push eax
lea edx, [ebp - 0x36c]
push edx
mov byte [ebp - 4], 0x11
call fcn.00402040
add esp, 0xc
mov eax, dword [eax]
mov edi, dword [ebp - 0x32c]
push eax
push 0x3f4
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.00423653
mov eax, dword [ebp - 0x36c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x11
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402a6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x348]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402a8f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.00424324
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x334]
mov ecx, dword [ebp - 0x354]
mov edx, dword [0x43f388]
push eax
mov eax, dword [0x43f38c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x31c]
push str.Files:__d__d___skByte___skb_sec
push ecx
mov byte [ebp - 4], 0x13
call fcn.00401f70
mov esi, dword [ebp - 0x31c]
add esp, 0x18
push esi
push 0x3ed
mov ecx, edi
call fcn.00423653
lea eax, [esi - 0x10]
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402760
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x402760
lea ecx, [ebp - 0x398]
call fcn.00424fd0
mov eax, dword [ebp - 0x318]
add eax, 0xfffffff0
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402b40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x398]
mov byte [ebp - 4], 7
call fcn.00425071
push 0
push 0x430896
mov ecx, 0x43f3a0
mov dword [ebp - 4], 6
call fcn.00401600
push 0
push 0x430896
mov ecx, 0x43f3a4
call fcn.00401600
push 0
push 0x430896
mov ecx, 0x43f398
call fcn.00401600
cmp dword [0x43f384], 1
jne 0x402ba7
mov ecx, dword [ebp - 0x32c]
push str.Status:_Package_complete
push 0x3ee
call fcn.00423653
mov edx, dword [ebp - 0x350]
mov eax, dword [edx + 0x1c]
push 0
push 0
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x370]
push 1
call fcn.004237bf
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402bf1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x330]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c15
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x354]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c5d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x358]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x344]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402ca5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x3c8]
mov dword [ebp - 4], 0xffffffff
call fcn.0042a247
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
mov eax, 1
call fcn.00411557
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret