Function at 0x40ca70
Capabilities:
Create directory
Delete directory

Disassembly:
mov eax, 0x928
call fcn.005e6090
mov eax, dword [0x63b418]
test eax, eax
push ebx
mov ebx, ecx
push esi
mov esi, edx
mov dword [esp + 8], ebx
je 0x40cace
push eax
call fcn.005e641d
add esp, 4
test eax, eax
je 0x40cace
mov ecx, dword [0x6f7dfc]
push 0x5f8024
call fcn.004ef750
mov ecx, dword [0x63b878]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
call fcn.004e65e0
mov ecx, dword [0x63b418]
push 2
push ecx
mov ecx, eax
call fcn.004f2d10
mov ecx, dword [0x6f7dfc]
push 0x5f8024
call fcn.004ef750
mov ecx, dword [0x63b878]
lea edx, [esp + 0xc]
push edx
mov dword [esp + 0x10], eax
call fcn.004e65e0
mov ecx, dword [eax + 0x30]
call fcn.004f6070
test eax, eax
mov dword [0x6396c4], eax
jg 0x40cb0d
mov dword [0x6396c4], 0x32
test esi, esi
je 0x40cb15
test ebx, ebx
jne 0x40cb58
call fcn.0040b8c0
test eax, eax
je 0x40cefd
mov eax, dword [0x6397c0]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [esp + 8], eax
jne 0x40cb54
mov ecx, dword [0x63b84c]
push str.Failed_to_Get_Current_Company__Please_try_again.
push eax
push 1
push ecx
call fcn.00501190
add esp, 0x10
pop esi
pop ebx
add esp, 0x928
ret 4
mov ebx, dword [esp + 8]
test byte [ebx + 0x100], 0x40
je 0x40cb8a
call fcn.0040a960
lea ecx, [esp + 0x10]
call fcn.004e8f70
push 0
push 0
push str.Continue_Migration__
push 4
lea ecx, [esp + 0x20]
call fcn.004e94b0
cmp eax, 0x8000b
jne 0x40cb93
call fcn.0040ba30
test eax, eax
jne 0x40cba3
call fcn.0040aee0
pop esi
pop ebx
add esp, 0x928
ret 4
push ebp
mov ecx, 0x80
call fcn.004dc4c0
mov edx, dword [ebx + 0x40]
push edx
mov ebp, eax
push str._05d
push ebp
call fcn.005e6246
mov ecx, dword [ebx + 0x3c]
add esp, 0xc
lea edx, [esp + 0x30]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40cbd0
lea eax, [esp + 0x30]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cbe1
sub eax, edx
mov byte [esp + eax + 0x2c], cl
mov eax, ebp
mov ecx, ebp
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40cbf2
push edi
lea edi, [esp + 0x34]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40cc03
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]
mov ecx, ebp
call fcn.004dc6a0
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40ccf1
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov edi, dword [0x63b7cc]
lea edx, [esp + 0x138]
push edx
mov ecx, edi
call fcn.00505af0
mov eax, dword [0x63b84c]
push 0x5f8416
push eax
call fcn.00501150
mov ecx, dword [0x63b84c]
push 0x5f83dc
push ecx
call fcn.00501150
mov eax, dword [0x63b84c]
lea edx, [esp + 0x148]
push edx
push str.Migration_start_at__s
push 0
push 2
push eax
call fcn.00501190
add esp, 0x24
mov ecx, 0x80
mov dword [0x63b818], 1
call fcn.004dc4c0
mov ecx, 0x603ad8
mov dword [0x6396cc], eax
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40ccb5
mov esi, ebx
mov dword [0x6396c0], 0
call fcn.0040af20
test eax, eax
je 0x40cefb
mov ecx, 0x90
call fcn.004dc530
test eax, eax
je 0x40cd4f
mov ecx, eax
call fcn.004f0920
mov ebx, eax
jmp 0x40cd51
call fcn.0040b970
cmp eax, 1
jne 0x40cd3d
push 0
push 0
mov edx, str.Delete_Company__
mov ecx, 4
call fcn.00401610
cmp eax, 0x8000b
jne 0x40cd3d
push 0
push 0
mov edx, 0x5f8484
mov ecx, 4
call fcn.00401610
cmp eax, 0x8000b
jne 0x40cd3d
lea ecx, [esp + 0x34]
call fcn.004edc60
jmp 0x40cc40
call fcn.0040aee0
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4
xor ebx, ebx
mov ecx, 0xc0
call fcn.004dc530
test eax, eax
je 0x40cd6c
push 0
mov ecx, eax
call fcn.004eed90
mov ebp, eax
jmp 0x40cd6e
xor ebp, ebp
push ebx
mov esi, ebp
call fcn.0040bac0
push 0
push 0
mov edx, str.Migrate__
mov ecx, 4
call fcn.00401610
cmp eax, 0x8000b
jne 0x40cda3
call fcn.004e99d0
mov ecx, dword [esp + 0x10]
call fcn.0040ca40
call fcn.004e9ac0
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
call fcn.00505af0
mov eax, dword [0x6396cc]
mov esi, 0x603adc
lea esp, [esp]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40cde4
test cl, cl
je 0x40cde0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40cde4
add eax, 2
add esi, 2
test cl, cl
jne 0x40cdc0
xor eax, eax
jmp 0x40cde9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40ce54
mov ecx, 0x80
call fcn.004dc4c0
mov ecx, dword [0x63b4e0]
push 0x80
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push 0
push 0x6c
call fcn.00505850
push 0
push 0
mov edx, str.Migration_Completed_nCheck_Statistics
mov ecx, 4
call fcn.0040a770
mov esi, dword [esp + 0x10]
mov edi, str.IMPORT_ERROR
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ce42
call fcn.0040ac70
jmp 0x40ce47
call fcn.0040abd0
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x40ce54
call fcn.004dc6a0
mov ecx, dword [0x63b84c]
lea eax, [esp + 0x138]
push eax
push str.Migration_ended_at__s
xor esi, esi
push esi
push 2
push ecx
call fcn.00501190
mov edx, dword [0x63b84c]
push 0x5f83dc
push edx
call fcn.00501150
mov eax, dword [0x63b84c]
push 0x5f8416
push eax
call fcn.00501150
add esp, 0x24
cmp ebp, esi
je 0x40cea3
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
cmp ebx, esi
je 0x40ceaf
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, dword [0x6396cc]
push esi
push esi
push ecx
mov ecx, dword [0x63b4e0]
push 0x69
call fcn.00505850
call fcn.0040aee0
mov ecx, dword [0x6396cc]
mov dword [0x63b818], esi
call fcn.004dc6a0
mov edx, dword [0x63b7ec]
push esi
push esi
push edx
mov dword [0x6396cc], esi
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [0x63b6f4]
call fcn.00504540
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4