Function at 0x1024d910
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 8], eax
cmp dword [ebp + 8], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x140], ebx
je 0x1024de70
test ebx, ebx
je 0x1024de70
test edi, edi
je 0x1024de70
push 0x100
lea eax, [ebp - 0x10c]
push 0
push eax
call fcn.10425c00
add esp, 0xc
push 0
push 0x10470710
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x1024d98d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1024de70
mov eax, dword [ebp - 0x11c]
xor edx, edx
mov ecx, 0xbb8
mov eax, dword [eax + 4]
div ecx
lea eax, [ebp - 0x10c]
push edx
push edi
push 0x10470710
push 0x10470750
push eax
call fcn.100086a0
mov eax, dword [ebp + 0x18]
add esp, 0x14
cmp eax, 0xa
ja case.0x1024d9c6.0
jmp dword [eax*4 + 0x1024de88]
mov edi, dword [esi + 0xc]
mov eax, 0xaaaaaaab
mov dword [ebp - 0x110], edi
lea ecx, [edi*4]
mul ecx
mov eax, dword [esi + 0x10]
xor ecx, ecx
lea esi, [edi + 3]
shr edx, 1
and esi, 0xfffffffc
mov dword [ebp - 0x11c], edx
imul esi, eax
mov edx, 3
mov dword [ebp - 0x114], eax
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
add esp, 4
mov dword [ebp - 0x120], eax
lea ecx, [esi + esi*2]
push ecx
push 0
push eax
call fcn.10425c00
mov ecx, dword [ebp - 0x114]
add esp, 0xc
xor edi, edi
test ecx, ecx
jle 0x1024dac9
mov edx, dword [ebp - 0x11c]
add ebx, 2
mov esi, dword [ebp - 0x110]
lea eax, [edx*4]
sub eax, edx
neg eax
mov dword [ebp - 0x118], eax
lea eax, [ecx - 1]
lea eax, [eax + eax*2]
imul eax, edx
add ebx, eax
mov eax, dword [ebp - 0x118]
nop
test esi, esi
jle 0x1024dac2
mov eax, dword [ebp - 0x120]
lea ecx, [esi + 3]
and ecx, 0xfffffffc
mov edx, ebx
imul ecx, edi
lea eax, [eax + ecx*2]
inc eax
add eax, ecx
nop dword [eax + eax]
movzx ecx, byte [edx - 2]
lea edx, [edx + 3]
mov byte [eax + 1], cl
lea eax, [eax + 3]
movzx ecx, byte [edx - 4]
mov byte [eax - 3], cl
movzx ecx, byte [edx - 3]
mov byte [eax - 4], cl
sub esi, 1
jne 0x1024da90
mov esi, dword [ebp - 0x110]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
inc edi
add ebx, eax
cmp edi, ecx
jl 0x1024da70
mov ebx, dword [ebp - 0x120]
lea eax, [ebp - 0x10c]
push ecx
push dword [ebp - 0x110]
push ebx
push eax
call fcn.1024d260
push ebx
mov esi, eax
call fcn.10450877
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
push ecx
push dword [esi + 0x10]
lea eax, [ebp - 0x10c]
push dword [esi + 0xc]
push ebx
push eax
call fcn.1024d390
mov esi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
push dword [esi + 4]
lea eax, [ebp - 0x10c]
push dword [esi + 0x10]
push dword [esi + 0xc]
push ebx
push eax
call fcn.1024d570
mov esi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x110], eax
mov eax, dword [esi + 0x10]
mov esi, eax
imul esi, edi
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x128], esi
lea eax, [esi + esi*2]
push eax
call fcn.10450898
mov edx, dword [ebp - 0x114]
mov ecx, eax
add esp, 4
mov dword [ebp - 0x118], ecx
test ecx, ecx
je 0x1024dcb2
mov eax, edx
sar eax, 1
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x110]
sar eax, 1
mov dword [ebp - 0x13c], eax
lea eax, [esi + ecx]
add eax, esi
mov esi, dword [ebp - 0x110]
mov dword [ebp - 0x144], eax
mov eax, edx
imul eax, esi
add eax, ebx
mov dword [ebp - 0x120], eax
xor eax, eax
mov dword [ebp - 0x134], eax
test edx, edx
jle 0x1024dcb2
lea ebx, [edx - 1]
imul ebx, esi
add ebx, ecx
mov dword [ebp - 0x11c], ebx
xor esi, esi
test edi, edi
jle 0x1024dc97
mov edi, dword [ebp - 0x138]
mov edx, ebx
shr eax, 1
sub edi, eax
mov eax, dword [ebp - 0x140]
sub eax, ecx
dec edi
mov ecx, dword [ebp - 0x144]
imul edi, dword [ebp - 0x13c]
sub ecx, dword [ebp - 0x118]
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x12c], ecx
movzx eax, byte [eax + edx]
lea edx, [edx + 1]
mov ebx, dword [ebp - 0x128]
mov ecx, esi
mov byte [edx - 1], al
inc esi
mov eax, dword [ebp - 0x120]
shr ecx, 1
add ecx, edi
movzx eax, byte [eax + ecx*2]
mov byte [edx + ebx - 1], al
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + ecx*2 + 1]
mov ecx, dword [ebp - 0x12c]
mov byte [ecx + edx - 1], al
mov eax, dword [ebp - 0x124]
cmp esi, dword [ebp - 0x130]
jl 0x1024dc31
mov ebx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x130]
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
sub ebx, dword [ebp - 0x110]
inc eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x11c], ebx
cmp eax, edx
jl 0x1024dbf3
push edi
push edx
push edi
push ecx
lea eax, [ebp - 0x10c]
push eax
call fcn.1024d570
push dword [ebp - 0x118]
mov esi, eax
call fcn.10450877
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
push dword [esi + 4]
lea eax, [ebp - 0x10c]
push dword [esi + 0x10]
push dword [esi + 0xc]
push ebx
push eax
call fcn.1024d7a0
mov esi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x128], eax
imul eax, ecx
mov dword [ebp - 0x12c], ecx
lea esi, [eax + eax*2]
push esi
call fcn.10450898
add esp, 4
xor ecx, ecx
mov edx, eax
test esi, esi
jle 0x1024de11
cmp esi, 0x20
jb 0x1024de05
lea eax, [ebx - 2]
lea edi, [esi - 1]
lea eax, [eax + esi*2]
add edi, edx
cmp edx, eax
ja 0x1024dd5f
cmp edi, ebx
jae 0x1024de05
mov eax, esi
and eax, 0x8000001f
jns 0x1024dd6d
dec eax
or eax, 0xffffffe0
inc eax
mov edi, esi
sub edi, eax
mov eax, 8
mov dword [ebp - 0x124], edi
lea edi, [ebx + 0x20]
movd xmm1, eax
lea eax, [edx + 0x10]
movups xmm0, xmmword [edi - 0x20]
add ecx, 0x20
lea edi, [edi + 0x40]
lea eax, [eax + 0x20]
psrlw xmm0, xmm1
pand xmm0, xmmword [0x1122e110]
packuswb xmm0, xmm0
movq qword [eax - 0x30], xmm0
movups xmm0, xmmword [edi - 0x50]
psrlw xmm0, xmm1
pand xmm0, xmmword [0x1122e110]
packuswb xmm0, xmm0
movq qword [eax - 0x28], xmm0
movups xmm0, xmmword [edi - 0x40]
psrlw xmm0, xmm1
pand xmm0, xmmword [0x1122e110]
packuswb xmm0, xmm0
movq qword [eax - 0x20], xmm0
movups xmm0, xmmword [edi - 0x30]
psrlw xmm0, xmm1
pand xmm0, xmmword [0x1122e110]
packuswb xmm0, xmm0
movq qword [eax - 0x18], xmm0
cmp ecx, dword [ebp - 0x124]
jl 0x1024dd86
mov dword [ebp - 0x124], ecx
cmp ecx, esi
jge 0x1024de11
mov al, byte [ebx + ecx*2 + 1]
mov byte [edx + ecx], al
inc ecx
cmp ecx, esi
jl 0x1024de05
mov eax, dword [ebp - 0x12c]
push eax
push dword [ebp - 0x128]
push eax
push edx
lea eax, [ebp - 0x10c]
push eax
call fcn.1024d7a0
mov esi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [esi + 4]
shr eax, 2
push eax
push dword [esi + 0x10]
lea eax, [ebp - 0x10c]
push dword [esi + 0xc]
push ebx
push eax
call fcn.1024d470
mov esi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x14