Function at 0x40ca10
Capabilities:
Create directory
Delete directory

Disassembly:
mov eax, 0x928
call fcn.006977b0
mov eax, dword [0x7009ac]
test eax, eax
push ebx
mov ebx, ecx
push esi
mov esi, edx
mov dword [esp + 8], ebx
je 0x40ca6e
push eax
call fcn.00697ac6
add esp, 4
test eax, eax
je 0x40ca6e
mov ecx, dword [0x7bd020]
push 0x6ba054
call fcn.004ff370
mov ecx, dword [0x700c0c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
call fcn.004ee44c
mov ecx, dword [0x7009ac]
push 2
push ecx
mov ecx, eax
call fcn.00503048
mov ecx, dword [0x7bd020]
push 0x6ba054
call fcn.004ff370
mov ecx, dword [0x700c0c]
lea edx, [esp + 0xc]
push edx
mov dword [esp + 0x10], eax
call fcn.004ee44c
mov ecx, dword [eax + 0x29]
call fcn.0051a93c
test eax, eax
mov dword [0x6fea40], eax
jg 0x40caad
mov dword [0x6fea40], 0x32
test esi, esi
je 0x40cab5
test ebx, ebx
jne 0x40caf8
call fcn.0040b860
test eax, eax
je 0x40ce9d
mov eax, dword [0x6feb40]
mov eax, dword [eax + 0x17]
test eax, eax
mov dword [esp + 8], eax
jne 0x40caf4
mov ecx, dword [0x700bd4]
push str.Failed_to_Get_Current_Company__Please_try_again.
push eax
push 1
push ecx
call fcn.005227d8
add esp, 0x10
pop esi
pop ebx
add esp, 0x928
ret 4
mov ebx, dword [esp + 8]
test byte [ebx + 0xec], 0x40
je 0x40cb2a
call fcn.0040a8f0
lea ecx, [esp + 0x10]
call fcn.004f58c0
push 0
push 0
push str.Continue_Migration__
push 4
lea ecx, [esp + 0x20]
call fcn.004f5530
cmp eax, 0x8000b
jne 0x40cb33
call fcn.0040b9d0
test eax, eax
jne 0x40cb43
call fcn.0040ae70
pop esi
pop ebx
add esp, 0x928
ret 4
push ebp
mov ecx, 0x80
call fcn.004dc288
mov edx, dword [ebx + 0x39]
push edx
mov ebp, eax
push str._05d
push ebp
call fcn.00697936
mov ecx, dword [ebx + 0x35]
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 0x40cb70
lea eax, [esp + 0x30]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cb81
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 0x40cb92
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 0x40cba3
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.004db958
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40cc91
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov edi, dword [0x700834]
lea edx, [esp + 0x138]
push edx
mov ecx, edi
call fcn.0052b62c
mov eax, dword [0x700bd4]
push 0x6ba446
push eax
call fcn.00522878
mov ecx, dword [0x700bd4]
push 0x6ba40c
push ecx
call fcn.00522878
mov eax, dword [0x700bd4]
lea edx, [esp + 0x148]
push edx
push str.Migration_start_at__s
push 0
push 2
push eax
call fcn.005227d8
add esp, 0x24
mov ecx, 0x80
mov dword [0x700bcc], 1
call fcn.004dc288
mov ecx, 0x6c5d78
mov dword [0x6fea4c], eax
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40cc55
mov esi, ebx
mov dword [0x6fea44], 0
call fcn.0040aeb0
test eax, eax
je 0x40ce9b
mov ecx, 0x8a
call fcn.004dc218
test eax, eax
je 0x40ccef
mov ecx, eax
call fcn.00501168
mov ebx, eax
jmp 0x40ccf1
call fcn.0040b910
cmp eax, 1
jne 0x40ccdd
push 0
push 0
mov edx, str.Delete_Company__
mov ecx, 4
call fcn.004015d0
cmp eax, 0x8000b
jne 0x40ccdd
push 0
push 0
mov edx, 0x6ba4b4
mov ecx, 4
call fcn.004015d0
cmp eax, 0x8000b
jne 0x40ccdd
lea ecx, [esp + 0x34]
call fcn.004face0
jmp 0x40cbe0
call fcn.0040ae70
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4
xor ebx, ebx
mov ecx, 0xb5
call fcn.004dc218
test eax, eax
je 0x40cd0c
push 0
mov ecx, eax
call fcn.004fefe8
mov ebp, eax
jmp 0x40cd0e
xor ebp, ebp
push ebx
mov esi, ebp
call fcn.0040ba60
push 0
push 0
mov edx, str.Migrate__
mov ecx, 4
call fcn.004015d0
cmp eax, 0x8000b
jne 0x40cd43
call fcn.004f5b80
mov ecx, dword [esp + 0x10]
call fcn.0040c9e0
call fcn.004f5c70
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
call fcn.0052b62c
mov eax, dword [0x6fea4c]
mov esi, 0x6c5d7c
lea esp, [esp]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40cd84
test cl, cl
je 0x40cd80
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40cd84
add eax, 2
add esi, 2
test cl, cl
jne 0x40cd60
xor eax, eax
jmp 0x40cd89
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40cdf4
mov ecx, 0x80
call fcn.004dc288
mov ecx, dword [0x70095b]
push 0x80
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push 0
push 0x6c
call fcn.0052a550
push 0
push 0
mov edx, str.Migration_Completed_nCheck_Statistics
mov ecx, 4
call fcn.0040a700
mov esi, dword [esp + 0x10]
mov edi, str.IMPORT_ERROR
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40cde2
call fcn.0040ac00
jmp 0x40cde7
call fcn.0040ab60
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x40cdf4
call fcn.004db958
mov ecx, dword [0x700bd4]
lea eax, [esp + 0x138]
push eax
push str.Migration_ended_at__s
xor esi, esi
push esi
push 2
push ecx
call fcn.005227d8
mov edx, dword [0x700bd4]
push 0x6ba40c
push edx
call fcn.00522878
mov eax, dword [0x700bd4]
push 0x6ba446
push eax
call fcn.00522878
add esp, 0x24
cmp ebp, esi
je 0x40ce43
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
cmp ebx, esi
je 0x40ce4f
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, dword [0x6fea4c]
push esi
push esi
push ecx
mov ecx, dword [0x70095b]
push 0x69
call fcn.0052a550
call fcn.0040ae70
mov ecx, dword [0x6fea4c]
mov dword [0x700bcc], esi
call fcn.004db958
mov edx, dword [0x700854]
push esi
push esi
push edx
mov dword [0x6fea4c], esi
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [0x700762]
call fcn.00529650
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4