Function at 0x43fd90
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b7542
mov eax, dword fs:[0]
push eax
mov eax, 0x24b0
call fcn.0059a600
mov eax, dword [0x6319d0]
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, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2474], ecx
mov dword [ebp - 0x246c], edi
mov dword [ebp - 0x2490], eax
call fcn.0046d4f0
xor esi, esi
test eax, eax
je 0x43fe65
push edi
push str.CINICustomFile::SetupInstallINIFile_:_pszINIFileName___s_n
push 0x66a6b0
call fcn.00599ee3
mov ecx, dword [str.ENTRY:]
mov edx, dword [0x5ccf7c]
mov eax, 0x66a6b0
add esp, 0xc
mov dword [0x66a5b0], ecx
mov dword [0x66a5b4], edx
mov esi, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43fe20
mov edi, 0x66a5b0
sub eax, esi
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43fe30
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d500
push 0x66a5b0
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d9d0
xor esi, esi
mov dword [ebp - 0x2468], esi
mov dword [ebp - 0x2480], esi
mov dword [ebp - 0x2478], esi
push 0x5dc
lea eax, [ebp - 0x2460]
push 0x4b
push eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x2464], esi
call fcn.00599fb0
mov ecx, 0x5dc
xor eax, eax
lea edi, [ebp - 0x1e84]
add esp, 0xc
rep stosd dword es:[edi], eax
mov dword [ebp - 0x24a8], esi
mov dword [ebp - 0x24a0], esi
mov dword [ebp - 0x24b4], esi
mov dword [ebp - 0x24ac], esi
mov edi, dword [ebp - 0x2474]
lea ecx, [edi + 0x130]
mov byte [ebp - 4], 3
call fcn.0043d580
mov edx, dword [ebx]
lea ecx, [ebx + 4]
push ecx
push edx
mov ecx, edi
call fcn.00427090
push 1
lea eax, [ebp - 0x31c]
push eax
push 0x104
call fcn.0049cd20
lea ecx, [ebp - 0x714]
push ecx
call fcn.0059b8fc
movzx edx, word [ebp - 0x70c]
mov eax, dword [ebp - 0x710]
mov ecx, dword [ebp - 0x714]
push edx
push eax
push ecx
lea edx, [ebp - 0x31c]
push edx
lea eax, [ebp - 0x218]
push str._sCustomINI_x_x
push eax
call fcn.00599ee3
add esp, 0x28
push esi
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edi, [ebp - 0x218]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43ff45
mov dx, word [0x5cd28c]
mov esi, dword [ebp - 0x2474]
mov eax, dword [ebp - 0x246c]
add esi, 0x2c
mov word [edi], dx
mov edx, esi
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x43ff70
push esi
lea ecx, [ebp - 0x24b4]
call fcn.004048c0
mov edi, dword [ebp - 0x24b4]
or esi, 0xffffffff
mov eax, edi
push 0x5cd28c
push eax
call fcn.0059ade0
add esp, 8
test eax, eax
je 0x43ffad
sub eax, edi
mov esi, eax
lea eax, [esi + edi + 1]
jmp 0x43ff91
inc esi
push esi
push 0
lea ecx, [ebp - 0x24b4]
call fcn.00433760
xor eax, eax
mov edi, edi
mov cl, byte [ebp + eax - 0x218]
mov byte [ebp + eax - 0x114], cl
inc eax
test cl, cl
jne 0x43ffc0
lea edi, [ebp - 0x114]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43ffe0
mov ax, word [0x5cd28c]
mov word [edi], ax
mov eax, dword [ebp - 0x24b4]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x440000
lea edi, [ebp - 0x114]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x440012
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046d4f0
test eax, eax
je 0x44005b
lea ecx, [ebp - 0x114]
push ecx
push str.szTempINIFileName___s_n
push 0x66a4b0
call fcn.00599ee3
add esp, 0xc
push 0x66a4b0
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d9d0
mov edx, dword [ebp - 0x246c]
push 0x5d1dc0
push edx
call fcn.0059adc7
mov edi, eax
add esp, 8
mov dword [ebp - 0x24b8], edi
test edi, edi
je 0x440497
lea eax, [ebp - 0x114]
push 0x5d3770
push eax
call fcn.0059adc7
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x44030b
lea ecx, [ebp - 0x2464]
call fcn.0043d580
push edi
lea ecx, [ebp - 0x704]
push 0x103
push ecx
call fcn.0059bc71
add esp, 0xc
test eax, eax
je 0x440302
jmp 0x4400d0
lea edx, [ebp - 0x704]
push edx
lea ecx, [ebp - 0x2480]
call fcn.004048c0
lea ecx, [ebp - 0x2480]
call fcn.0043d410
mov ecx, dword [ebp - 0x2480]
test ecx, ecx
je 0x44010f
mov eax, ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x440100
sub eax, esi
je 0x44010f
cmp byte [ecx], dl
jne 0x440124
lea eax, [ebp - 0x704]
push ebx
push eax
call fcn.0059ac05
add esp, 8
jmp 0x4402e5
mov eax, ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x440130
sub eax, esi
cmp byte [eax + ecx - 1], 0x5c
jne 0x440174
mov eax, ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x440145
sub eax, edx
push 1
dec eax
push eax
lea ecx, [ebp - 0x2480]
call fcn.00433760
mov ecx, dword [ebp - 0x2480]
push ecx
lea ecx, [ebp - 0x24a8]
call fcn.00404960
jmp 0x4402e5
push ecx
lea ecx, [ebp - 0x24a8]
call fcn.00404960
mov esi, dword [ebp - 0x24a8]
mov ecx, dword [ebp - 0x2474]
lea edx, [ebp - 0x2464]
push edx
push esi
call fcn.0043fb10
test al, 1
je 0x4401a7
mov dword [ebp - 0x2468], 1
test al, 2
je 0x4401b2
mov eax, 1
jmp 0x4401ba
mov eax, dword [ebp - 0x2490]
mov eax, dword [eax]
cmp dword [ebp - 0x2464], 0
mov ecx, dword [ebp - 0x2490]
mov dword [ecx], eax
jbe 0x4402b2
call fcn.0046d4f0
test eax, eax
je 0x4401fc
push esi
push str.Original_Data_:___n
push 0x66a3b0
call fcn.00599ee3
add esp, 0xc
push 0x66a3b0
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d9d0
mov ecx, dword [ebp - 0x2464]
test ecx, ecx
je 0x4402c7
lea esi, [ebp - 0x2460]
jmp 0x440218
mov ecx, dword [ebp - 0x2464]
test esi, esi
je 0x440250
lea edx, [ebp - 0x2460]
sub esi, edx
inc esi
lea eax, [esi - 1]
cmp eax, 0x5db
ja 0x440250
cmp esi, ecx
jae 0x44023c
lea esi, [ebp + esi - 0x2460]
jmp 0x44023e
xor esi, esi
cmp eax, ecx
jae 0x440252
cmp eax, 0xffffffff
je 0x440252
mov eax, dword [ebp + eax*4 - 0x1e84]
jmp 0x440254
xor esi, esi
xor eax, eax
push eax
lea ecx, [ebp - 0x2480]
call fcn.004048c0
call fcn.0046d4f0
mov edi, dword [ebp - 0x2480]
test eax, eax
je 0x440293
push edi
push str.New_Data_:___n
push 0x66a2b0
call fcn.00599ee3
add esp, 0xc
push 0x66a2b0
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d9d0
push ebx
push edi
call fcn.0059ac05
push ebx
push 0x5cd320
call fcn.0059ac05
add esp, 0x10
test esi, esi
jne 0x440212
jmp 0x4402c7
push ebx
push esi
call fcn.0059ac05
push ebx
push 0x5cd320
call fcn.0059ac05
add esp, 0x10
mov eax, dword [ebp - 0x24a8]
test eax, eax
je 0x4402d4
mov byte [eax], 0
lea ecx, [ebp - 0x2464]
call fcn.0043d580
mov edi, dword [ebp - 0x24b8]
push edi
lea eax, [ebp - 0x704]
push 0x103
push eax
call fcn.0059bc71
add esp, 0xc
test eax, eax
jne 0x4400d0
push ebx
call fcn.0059ab91
add esp, 4
push edi
call fcn.0059ab91
add esp, 4
cmp dword [ebp - 0x2468], 0
je 0x440497
xor ebx, ebx
mov dword [ebp - 0x249c], ebx
mov dword [ebp - 0x2494], ebx
mov dword [ebp - 0x248c], ebx
mov dword [ebp - 0x2484], ebx
lea ecx, [ebp - 0x114]
push ecx
lea ecx, [ebp - 0x248c]
mov byte [ebp - 4], 5
call fcn.004048c0
mov edx, dword [ebp - 0x246c]
push edx
lea ecx, [ebp - 0x249c]
call fcn.004048c0
mov edi, dword [ebp - 0x249c]
or esi, 0xffffffff
mov eax, edi
mov edi, edi
push 0x5cd28c
push eax
call fcn.0059ade0
add esp, 8
cmp eax, ebx
je 0x44038c
sub eax, edi
mov esi, eax
lea eax, [esi + edi + 1]
jmp 0x440370
mov eax, dword [ebp - 0x2494]
cmp esi, eax
jae 0x4403b8
add eax, 5
push eax
push ebx
mov ebx, dword [ebp - 0x2498]
push ebx
call fcn.00599fb0
push esi
push edi
push ebx
call fcn.0059ae70
add esp, 0x18
mov byte [ebx + esi], 0
mov edi, ebx
push edi
lea ecx, [ebp - 0x249c]
call fcn.004048c0
mov ebx, dword [ebp - 0x248c]
or esi, 0xffffffff
mov eax, ebx
nop
push 0x5cd28c
push eax
call fcn.0059ade0
add esp, 8
test eax, eax
je 0x4403ec
sub eax, ebx
mov esi, eax
lea eax, [esi + ebx + 1]
jmp 0x4403d0
mov eax, dword [ebp - 0x2484]
cmp esi, eax
jae 0x440419
mov edi, dword [ebp - 0x2488]
add eax, 5
push eax
push 0
push edi
call fcn.00599fb0
push esi
push ebx
push edi
call fcn.0059ae70
add esp, 0x18
mov byte [edi + esi], 0
jmp 0x44041b
mov edi, ebx
push edi
lea ecx, [ebp - 0x248c]
call fcn.004048c0
mov esi, dword [ebp - 0x246c]
mov edi, dword [ebp - 0x248c]
mov ebx, dword [ebp - 0x249c]
push esi
push edi
push ebx
lea ecx, [ebp - 0x246d]
call fcn.00432240
lea eax, [ebp - 0x114]
mov edx, esi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x440453
mov byte [ebp - 4], 4
test edi, edi
je 0x44047a
mov edx, dword [ebp - 0x2488]
push edx
call fcn.004a6dca
push edi
call fcn.004a6dca
add esp, 8
mov byte [ebp - 4], 3
test ebx, ebx
je 0x440497
mov eax, dword [ebp - 0x2498]
push eax
call fcn.004a6dca
push ebx
call fcn.004a6dca
add esp, 8
call fcn.0046d4f0
test eax, eax
je 0x44051a
mov ecx, dword [ebp - 0x2468]
push ecx
push str.CINICustomFile::SetupInstallINIFile_:_bRetVal___d_n
push 0x66a1b0
call fcn.00599ee3
mov eax, dword [0x5ccefc]
mov edx, dword [str.EXIT:]
mov dword [0x66a0b4], eax
mov eax, 0x66a1b0
add esp, 0xc
mov dword [0x66a0b0], edx
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4404d6
mov edi, 0x66a0b0
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4404e7
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x66a0b0
rep movsb byte es:[edi], byte [esi]
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d9d0
call fcn.0046d6a0
mov ecx, eax
call fcn.0046d510
mov esi, dword [ebp - 0x24b4]
mov byte [ebp - 4], 2
test esi, esi
je 0x44053d
mov ecx, dword [ebp - 0x24b0]
push ecx
call fcn.004a6dca
push esi
call fcn.004a6dca
add esp, 8
mov esi, dword [ebp - 0x24a8]
mov byte [ebp - 4], 1
test esi, esi
je 0x440560
mov edx, dword [ebp - 0x24a4]
push edx
call fcn.004a6dca
push esi
call fcn.004a6dca
add esp, 8
xor esi, esi
mov byte [ebp - 4], 0
cmp dword [ebp - 0x2464], esi
jbe 0x440598
mov edi, edi
mov eax, dword [ebp + esi*4 - 0x1e84]
test eax, eax
je 0x44058f
push eax
call fcn.004a6dca
add esp, 4
mov dword [ebp + esi*4 - 0x1e84], 0
inc esi
cmp esi, dword [ebp - 0x2464]
jb 0x440570
mov esi, dword [ebp - 0x2480]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x4405be
mov eax, dword [ebp - 0x247c]
push eax
call fcn.004a6dca
push esi
call fcn.004a6dca
add esp, 8
mov eax, dword [ebp - 0x2468]
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.00599ed4
mov esp, ebp
pop ebp
ret 0xc