Function at 0x402290
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x423fe1
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x42c798]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x170], 0
lea ebx, [ebp - 0x168]
mov dword [ebp - 4], 1
call fcn.004021a0
mov esi, 8
cmp dword [eax + 0x14], esi
jb 0x4022ef
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp dword [ebp - 0x154], esi
jb 0x40230d
mov ecx, dword [ebp - 0x168]
push ecx
call fcn.0040e3be
add esp, 4
lea edx, [ebp - 0x168]
push edx
lea ebx, [ebp + 0xc]
call fcn.0040a200
add esp, 4
mov ecx, eax
lea eax, [ebp + 0x28]
lea ebx, [ebp - 0x14c]
mov byte [ebp - 4], 2
call fcn.0040a300
mov byte [ebp - 4], 4
cmp dword [ebp - 0x154], esi
jb 0x40234e
mov eax, dword [ebp - 0x168]
push eax
call fcn.0040e3be
add esp, 4
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x154], 7
mov dword [ebp - 0x158], edi
mov word [ebp - 0x168], cx
mov eax, 0x42ecc8
cmp byte [0x42d6c8], cl
jne 0x40237b
mov eax, 0x42dc60
lea edx, [ebp - 0x14c]
push edx
push ecx
push 0x4283e0
push eax
call fcn.0040a340
add esp, 0xc
push eax
call fcn.0040a600
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404dd0
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov ecx, dword [eax + esi + 0xc]
xor ebx, ebx
test cl, 6
jne 0x4023cc
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4023cc
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp ebx, edi
je 0x4023eb
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], edi
jne 0x4023e4
or eax, 4
push edi
push eax
call fcn.00401ca0
cmp dword [ebp - 0x138], 8
mov eax, dword [ebp - 0x14c]
jae 0x402400
lea eax, [ebp - 0x14c]
push 0x4283f8
push eax
call fcn.0040f980
mov ebx, eax
add esp, 8
cmp ebx, edi
jne 0x402516
cmp byte [0x42d6c8], 0
mov eax, 0x42ecc8
jne 0x40242b
mov eax, 0x42dc60
push str.Exe_not_found
push eax
call fcn.0040a8a0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404dd0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x402469
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x402469
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp ebx, edi
je 0x402488
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], edi
jne 0x402481
or eax, 4
push edi
push eax
call fcn.00401ca0
mov esi, dword [ebp - 0x16c]
xor edx, edx
mov ebx, 8
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
push ebx
mov eax, str.NOTFOUND
mov word [esi], dx
call fcn.004088b0
cmp dword [ebp - 0x138], ebx
jb 0x4024c4
mov eax, dword [ebp - 0x14c]
push eax
call fcn.0040e3be
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x138], 7
mov dword [ebp - 0x13c], edi
mov word [ebp - 0x14c], cx
cmp dword [ebp + 0x20], ebx
jb 0x4024ee
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040e3be
add esp, 4
xor eax, eax
mov dword [ebp + 0x20], 7
mov dword [ebp + 0x1c], edi
mov word [ebp + 0xc], ax
cmp dword [ebp + 0x3c], ebx
jb 0x40250f
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.0040e3be
add esp, 4
mov eax, esi
jmp 0x4028b4
xor edx, edx
push edi
mov eax, 0x4283d8
lea esi, [ebp - 0x130]
mov dword [ebp - 0x11c], 7
mov dword [ebp - 0x120], edi
mov word [ebp - 0x130], dx
call fcn.004088b0
push ebx
mov byte [ebp - 4], 5
call fcn.0040fe54
add esp, 4
test eax, eax
jne 0x4025a1
push ebx
lea eax, [ebp - 0x114]
push 0x80
push eax
call fcn.0040fe7c
add esp, 0xc
test eax, eax
je 0x402594
lea eax, [ebp - 0x114]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x402573
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x130]
call fcn.00408780
push ebx
call fcn.0040fe54
add esp, 4
test eax, eax
je 0x402551
mov eax, dword [0x42d720]
mov esi, 8
cmp dword [0x42d734], esi
jae 0x4025b8
mov eax, 0x42d720
mov ecx, dword [0x42d730]
push ecx
push eax
lea edx, [ebp - 0x130]
push edx
call fcn.00407200
cmp eax, 0xffffffff
je 0x402712
push ebx
call fcn.0040ff93
add esp, 4
cmp byte [0x42d6c8], 0
mov eax, 0x42ecc8
jne 0x4025f1
mov eax, 0x42dc60
lea ecx, [ebp - 0x130]
push ecx
push eax
call fcn.0040a600
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404dd0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x402631
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x402631
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp ebx, edi
je 0x402650
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], edi
jne 0x402649
or eax, 4
push edi
push eax
call fcn.00401ca0
mov esi, dword [ebp - 0x16c]
xor edx, edx
mov ebx, 8
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
push ebx
mov eax, str.PASSWORD
mov word [esi], dx
call fcn.004088b0
cmp dword [ebp - 0x11c], ebx
jb 0x40268c
mov eax, dword [ebp - 0x130]
push eax
call fcn.0040e3be
add esp, 4
xor ecx, ecx
mov word [ebp - 0x130], cx
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], 7
cmp dword [ebp - 0x138], ebx
jb 0x4026bc
mov edx, dword [ebp - 0x14c]
push edx
call fcn.0040e3be
add esp, 4
xor eax, eax
mov word [ebp - 0x14c], ax
mov dword [ebp - 0x13c], edi
mov dword [ebp - 0x138], 7
cmp dword [ebp + 0x20], ebx
jb 0x4026e6
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040e3be
add esp, 4
xor edx, edx
mov dword [ebp + 0x20], 7
mov dword [ebp + 0x1c], edi
mov word [ebp + 0xc], dx
cmp dword [ebp + 0x3c], ebx
jb 0x40250f
mov eax, dword [ebp + 0x28]
push eax
call fcn.0040e3be
add esp, 4
mov eax, esi
jmp 0x4028b4
mov eax, dword [0x42d704]
cmp dword [0x42d718], esi
jae 0x402724
mov eax, 0x42d704
mov ecx, dword [0x42d714]
push ecx
push eax
lea edx, [ebp - 0x130]
push edx
call fcn.00407200
push ebx
cmp eax, 0xffffffff
je 0x4027e7
call fcn.0040ff93
add esp, 4
cmp byte [0x42d6c8], 0
mov eax, 0x42ecc8
jne 0x40275d
mov eax, 0x42dc60
lea ecx, [ebp - 0x130]
push ecx
push eax
call fcn.0040a600
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404dd0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x40279d
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x40279d
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp ebx, edi
je 0x4027bc
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], edi
jne 0x4027b5
or eax, 4
push edi
push eax
call fcn.00401ca0
mov esi, dword [ebp - 0x16c]
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
push 5
mov eax, str.ERROR
mov word [esi], dx
call fcn.004088b0
mov ebx, 8
jmp 0x402675
call fcn.0040ff93
add esp, 4
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x16c]
mov ebx, 7
xor ecx, ecx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], 0
lea edi, [ebp - 0x130]
mov esi, eax
mov word [eax], cx
call fcn.00407090
mov edi, 8
cmp dword [ebp - 0x11c], edi
jb 0x40283d
mov edx, dword [ebp - 0x130]
push edx
call fcn.0040e3be
add esp, 4
xor esi, esi
xor eax, eax
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x120], esi
mov word [ebp - 0x130], ax
cmp dword [ebp - 0x138], edi
jb 0x40286b
mov ecx, dword [ebp - 0x14c]
push ecx
call fcn.0040e3be
add esp, 4
xor edx, edx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x13c], esi
mov word [ebp - 0x14c], dx
cmp dword [ebp + 0x20], edi
jb 0x402891
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040e3be
add esp, 4
xor ecx, ecx
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x1c], esi
mov word [ebp + 0xc], cx
cmp dword [ebp + 0x3c], edi
jb 0x4028ae
mov edx, dword [ebp + 0x28]
push edx
call fcn.0040e3be
add esp, 4
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040e0f9
mov esp, ebp
pop ebp
ret