Function at 0x40df30
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30c
push ebx
push esi
push edi
push 0x448268
lea ecx, [ebp - 0x1cc]
call fcn.00414750
lea ecx, [ebp - 0x1b4]
call fcn.00406e30
lea eax, [ebp - 0x1cc]
push eax
push ecx
lea ecx, [ebp - 0x34]
call fcn.00406970
add esp, 4
lea ecx, [ebp - 0x4c]
mov edx, eax
call fcn.00415380
mov edx, dword [ebp - 0x20]
add esp, 4
cmp edx, 0x10
jb 0x40dfab
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40dfa1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb11
push edx
push ecx
call fcn.00417582
add esp, 8
push 0x104
lea eax, [ebp - 0x308]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x308]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x94], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dfe0
sub ecx, edx
lea eax, [ebp - 0x308]
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.00414eb0
sub esp, 0x18
lea eax, [ebp - 0x4c]
mov ecx, esp
push eax
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 0x38]
mov ecx, esp
push eax
call fcn.00414750
call fcn.00409a80
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
push 0x44422c
cmovae eax, dword [ebp - 0x4c]
push eax
call fcn.0041bf26
add esp, 0x38
test eax, eax
je 0x40e87c
push eax
call fcn.0041bfb4
add esp, 4
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0x18]
push eax
call fcn.00414750
cmp dword [ebp - 4], 0x10
lea ecx, [ebp - 0x200]
lea eax, [ebp - 0x18]
cmovae eax, dword [ebp - 0x18]
push ecx
push eax
call fcn.0041cc40
mov edx, dword [ebp - 4]
or edi, 0xffffffff
add esp, 8
test eax, eax
cmove edi, dword [ebp - 0x1ec]
cmp edx, 0x10
jb 0x40e0ae
mov ecx, dword [ebp - 0x18]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e0a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb16
push edx
push ecx
call fcn.00417582
add esp, 8
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0xf
mov byte [ebp - 0x18], 0
call fcn.0041ccc4
cmp dword [ebp + 0x7c], 0x10
lea esi, [ebp + 0x68]
mov ebx, eax
lea eax, [ebp - 0x1c]
cmovae esi, dword [ebp + 0x68]
push 0xa
push eax
push esi
mov dword [ebx], 0
call fcn.0041e7ba
add esp, 0xc
cmp esi, dword [ebp - 0x1c]
je 0x40eb1b
cmp dword [ebx], 0x22
je 0x40eb2f
cmp edi, eax
jle 0x40e87c
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x447de8
call fcn.00414750
mov ecx, esi
call fcn.004034e0
mov ecx, esp
push 0x447d70
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 0x50]
mov ecx, esp
push eax
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00414750
call fcn.0040d250
add esp, 0x78
lea ecx, [ebp - 0x34]
call fcn.00406970
cmp dword [eax + 0x14], 0x10
jb 0x40e16a
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x40e1a5
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e19b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb25
push edx
push ecx
call fcn.00417582
add esp, 8
sub esp, 0x18
mov ecx, esp
push 0x448310
call fcn.00414750
lea ecx, [ebp - 0x184]
call fcn.004034e0
add esp, 0x18
push eax
lea eax, [ebp - 0x1b4]
push eax
sub esp, 0x18
mov ecx, esp
push 0x448208
call fcn.00414750
lea ecx, [ebp - 0x16c]
call fcn.004034e0
add esp, 0x18
lea ecx, [ebp - 0x154]
mov edx, eax
call fcn.00415380
add esp, 4
lea ecx, [ebp - 0x13c]
mov edx, eax
call fcn.00415290
add esp, 4
mov ecx, eax
push 0x44421c
call fcn.00414540
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x7c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x6c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x1cc]
push eax
sub esp, 0x1c
mov ecx, esp
push 0x4480b8
call fcn.00414750
lea ecx, [ebp - 0x19c]
call fcn.004034e0
add esp, 0x1c
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x124]
push eax
lea eax, [ebp - 0x1b4]
push eax
call fcn.00415380
add esp, 4
lea ecx, [ebp - 0x10c]
mov edx, eax
call fcn.00415290
add esp, 4
lea ecx, [ebp - 0xf4]
mov edx, eax
call fcn.00415380
add esp, 4
mov ecx, eax
push 0x44424c
call fcn.00414540
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x64], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x54], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x94]
push eax
sub esp, 0x1c
mov ecx, esp
push 0x447b90
call fcn.00414750
lea ecx, [ebp - 0x34]
call fcn.004034e0
add esp, 0x1c
push eax
lea eax, [ebp - 0x1b4]
push eax
lea edx, [ebp - 0x64]
lea ecx, [ebp - 0xdc]
call fcn.00415380
add esp, 4
lea ecx, [ebp - 0xc4]
mov edx, eax
call fcn.00415290
add esp, 4
lea ecx, [ebp - 0xac]
mov edx, eax
call fcn.00415380
add esp, 4
mov ecx, eax
push 0x44424c
call fcn.00414540
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
movups xmm0, xmmword [eax]
push 0x447d58
movups xmmword [ebp - 0x18], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.00414750
lea ecx, [ebp - 0x1e8]
call fcn.004034e0
push eax
lea edx, [ebp - 0x18]
mov ecx, esi
call fcn.00415290
add esp, 0x1c
call fcn.00405300
mov edx, dword [ebp - 4]
add esp, 0x18
cmp edx, 0x10
jb 0x40e3b1
mov ecx, dword [ebp - 0x18]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e3a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x98]
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0xf
mov byte [ebp - 0x18], 0
cmp edx, 0x10
jb 0x40e3fd
mov ecx, dword [ebp - 0xac]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e3f3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
cmp edx, 0x10
jb 0x40e452
mov ecx, dword [ebp - 0xc4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e448
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
cmp edx, 0x10
jb 0x40e4a7
mov ecx, dword [ebp - 0xdc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e49d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0xf
mov byte [ebp - 0xdc], 0
cmp edx, 0x10
jb 0x40e4f6
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e4ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp edx, 0x10
jb 0x40e542
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e538
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0xf
mov byte [ebp - 0xf4], 0
cmp edx, 0x10
jb 0x40e597
mov ecx, dword [ebp - 0x10c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e58d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0xf
mov byte [ebp - 0x10c], 0
cmp edx, 0x10
jb 0x40e5ec
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e5e2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
cmp edx, 0x10
jb 0x40e63b
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e631
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
cmp edx, 0x10
jb 0x40e687
mov ecx, dword [ebp - 0x13c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e67d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
cmp edx, 0x10
jb 0x40e6dc
mov ecx, dword [ebp - 0x154]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e6d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
cmp edx, 0x10
jb 0x40e731
mov ecx, dword [ebp - 0x16c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e727
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x170]
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0xf
mov byte [ebp - 0x16c], 0
cmp edx, 0x10
jb 0x40e786
mov ecx, dword [ebp - 0x184]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e77c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x188]
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0xf
mov byte [ebp - 0x184], 0
cmp edx, 0x10
jb 0x40e7db
mov ecx, dword [ebp - 0x19c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e7d1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0xf
mov byte [ebp - 0x19c], 0
cmp edx, 0x10
jb 0x40e82a
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e820
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x40e8d5
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e870
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb2a
push edx
push ecx
call fcn.00417582
add esp, 8
jmp 0x40e8d5
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x448418
call fcn.00414750
mov ecx, esi
call fcn.004034e0
mov ecx, esp
push 0x447d70
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 0x50]
mov ecx, esp
push eax
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.00414750
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00414750
call fcn.0040d250
add esp, 0x78
mov edx, dword [ebp - 0x80]
cmp edx, 0x10
jb 0x40e90c
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e902
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x38]
cmp edx, 0x10
jb 0x40e940
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e936
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp edx, 0x10
jb 0x40e98c
mov ecx, dword [ebp - 0x1b4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e982
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp - 0x1b8]
cmp edx, 0x10
jb 0x40e9c6
mov ecx, dword [ebp - 0x1cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e9bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x40e9fa
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e9f0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x40ea40
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ea36
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp + 0x4c]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0xf
mov byte [ebp + 0x20], 0
cmp edx, 0x10
jb 0x40ea86
mov ecx, dword [ebp + 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ea7c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp + 0x64]
mov dword [ebp + 0x48], 0
mov dword [ebp + 0x4c], 0xf
mov byte [ebp + 0x38], 0
cmp edx, 0x10
jb 0x40eac8
mov ecx, dword [ebp + 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40eabe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
mov edx, dword [ebp + 0x7c]
mov dword [ebp + 0x60], 0
mov dword [ebp + 0x64], 0xf
mov byte [ebp + 0x50], 0
cmp edx, 0x10
jb 0x40eb0a
mov ecx, dword [ebp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40eb00
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eb39
push edx
push ecx
call fcn.00417582
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0041ea01
call fcn.0041ea01
push str.invalid_stoi_argument
call fcn.00416240
call fcn.0041ea01
call fcn.0041ea01
push str.stoi_argument_out_of_range
call fcn.00416280
call fcn.0041ea01
int3