Function at 0x40c540
Capabilities:
Create directory
Delete directory

Disassembly:
mov eax, 0x928
call fcn.006021b0
mov eax, dword [0x65e740]
push ebx
mov ebx, ecx
push esi
mov esi, edx
test eax, eax
mov dword [esp + 8], ebx
je 0x40c59e
push eax
call fcn.006024c2
add esp, 4
test eax, eax
je 0x40c59e
mov ecx, dword [0x65f510]
push 0x622494
call fcn.004f3970
mov ecx, dword [0x65e7cc]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
call fcn.004e853c
mov ecx, dword [0x65e740]
push 2
push ecx
mov ecx, eax
call fcn.004f756c
mov ecx, dword [0x65f510]
push 0x622494
call fcn.004f3970
mov ecx, dword [0x65e7cc]
lea edx, [esp + 0xc]
push edx
mov dword [esp + 0x10], eax
call fcn.004e853c
mov ecx, dword [eax + 0x29]
call fcn.005001ac
test eax, eax
mov dword [0x65ca00], eax
jg 0x40c5dd
mov dword [0x65ca00], 0x32
test esi, esi
je 0x40c5e5
test ebx, ebx
jne 0x40c628
call fcn.0040b3e0
test eax, eax
je 0x40c9c2
mov eax, dword [0x65cb0c]
mov eax, dword [eax + 0x17]
test eax, eax
mov dword [esp + 8], eax
jne 0x40c624
mov ecx, dword [0x65e788]
push str.Failed_to_Get_Current_Company__Please_try_again.
push eax
push 1
push ecx
call fcn.0050692c
add esp, 0x10
pop esi
pop ebx
add esp, 0x928
ret 4
mov ebx, dword [esp + 8]
test byte [ebx + 0xec], 0x40
je 0x40c65a
call fcn.0040a7b0
lea ecx, [esp + 0x10]
call fcn.004ec7f0
lea ecx, [esp + 0x10]
push 0
push 0
push str.Continue_Migration__
push 4
call fcn.004ec804
cmp eax, 0x8000b
jne 0x40c663
call fcn.0040b550
test eax, eax
jne 0x40c673
call fcn.0040ad30
pop esi
pop ebx
add esp, 0x928
ret 4
push ebp
push edi
mov ecx, 0x80
call fcn.004dbf60
mov edx, dword [ebx + 0x39]
mov ebp, eax
push edx
push str._05d
push ebp
call fcn.00602336
mov ecx, dword [ebx + 0x35]
add esp, 0xc
lea edx, [esp + 0x34]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40c69a
lea eax, [esp + 0x34]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c6ab
sub eax, edx
mov byte [esp + eax + 0x30], cl
mov eax, ebp
mov ecx, ebp
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c6bc
lea edi, [esp + 0x34]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40c6cc
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.004dbc10
lea eax, [esp + 0x34]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40c7ba
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov edi, dword [0x74c2f4]
lea edx, [esp + 0x138]
push edx
mov ecx, edi
call fcn.0050d528
mov eax, dword [0x65e788]
push 0x622396
push eax
call fcn.0050685c
mov ecx, dword [0x65e788]
push 0x62235c
push ecx
call fcn.0050685c
mov eax, dword [0x65e788]
lea edx, [esp + 0x148]
push edx
push str.Migration_start_at__s
push 0
push 2
push eax
call fcn.0050692c
add esp, 0x24
mov ecx, 0x80
mov dword [0x65e77c], 1
call fcn.004dbf60
mov ecx, 0x74ef2c
mov dword [0x65ca18], eax
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40c77e
mov esi, ebx
mov dword [0x65ca10], 0
call fcn.0040ad70
test eax, eax
je 0x40c9c0
mov ecx, 0x8a
call fcn.004dbd80
test eax, eax
je 0x40c818
mov ecx, eax
call fcn.004f4f20
mov ebx, eax
jmp 0x40c81a
call fcn.0040b490
cmp eax, 1
jne 0x40c806
push 0
push 0
mov edx, str.Delete_Company__
mov ecx, 4
call fcn.00401540
cmp eax, 0x8000b
jne 0x40c806
push 0
push 0
mov edx, str.Are_you_sure__
mov ecx, 4
call fcn.00401540
cmp eax, 0x8000b
jne 0x40c806
lea ecx, [esp + 0x34]
call fcn.004f1624
jmp 0x40c709
call fcn.0040ad30
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4
xor ebx, ebx
mov ecx, 0xb5
call fcn.004dbd80
test eax, eax
je 0x40c835
push 0
mov ecx, eax
call fcn.004f3080
mov ebp, eax
jmp 0x40c837
xor ebp, ebp
push ebx
mov esi, ebp
call fcn.0040b5e0
mov edx, str.Migrate__
mov ecx, 4
push 0
push 0
call fcn.00401540
cmp eax, 0x8000b
jne 0x40c86c
call fcn.004ecd9c
mov ecx, dword [esp + 0x10]
call fcn.0040c510
call fcn.004ecd18
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
call fcn.0050d528
mov eax, dword [0x65ca18]
mov esi, 0x74ef30
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40c8a9
test cl, cl
je 0x40c8a5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40c8a9
add eax, 2
add esi, 2
test cl, cl
jne 0x40c885
xor eax, eax
jmp 0x40c8ae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40c919
mov ecx, 0x80
call fcn.004dbf60
mov ecx, dword [0x74c1ef]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push 0x80
push eax
push 0
push 0x6c
call fcn.0050c420
mov edx, str.Migration_Completed_nCheck_Statistics
mov ecx, 4
push 0
push 0
call fcn.0040a520
mov esi, dword [esp + 0x10]
mov edi, str.IMPORT_ERROR
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c907
call fcn.0040aac0
jmp 0x40c90c
call fcn.0040aa20
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x40c919
call fcn.004dbc10
mov ecx, dword [0x65e788]
lea eax, [esp + 0x138]
push eax
xor esi, esi
push str.Migration_ended_at__s
push esi
push 2
push ecx
call fcn.0050692c
mov edx, dword [0x65e788]
push 0x62235c
push edx
call fcn.0050685c
mov eax, dword [0x65e788]
push 0x622396
push eax
call fcn.0050685c
add esp, 0x24
cmp ebp, esi
je 0x40c968
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
cmp ebx, esi
je 0x40c974
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, dword [0x65ca18]
push esi
push esi
push ecx
mov ecx, dword [0x74c1ef]
push 0x69
call fcn.0050c420
call fcn.0040ad30
mov ecx, dword [0x65ca18]
mov dword [0x65e77c], esi
call fcn.004dbc10
mov edx, dword [0x74c314]
mov dword [0x65ca18], esi
push esi
push esi
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [0x74c222]
call fcn.0050be10
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x928
ret 4