Function at 0x405847
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x40700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
push esi
mov ebx, ecx
inc eax
push edi
mov edi, eax
test ebx, ebx
je 0x405d6c
cmp byte [ebx], 0
je 0x405d6c
test edi, edi
je 0x40595f
mov al, byte [ebx]
cmp al, 0x20
je 0x405899
cmp al, 9
je 0x405899
cmp al, 0xd
je 0x405899
cmp al, 0xa
je 0x405899
cmp al, 0xb
je 0x405899
cmp al, 0xc
jne 0x4058a4
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ebx, eax
jmp 0x40587f
cmp byte [ebx], 0
mov dword [ebp - 0x10c], ebx
je 0x40595f
xor ecx, ecx
xor edx, edx
xor esi, esi
test edx, edx
jne 0x4058d9
mov al, byte [ebx]
cmp al, 0x20
je 0x405941
cmp al, 9
je 0x405941
cmp al, 0xd
je 0x405941
cmp al, 0xa
je 0x405941
cmp al, 0xb
je 0x405941
cmp al, 0xc
je 0x405941
jmp 0x4058dd
test esi, esi
jne 0x405941
mov al, byte [ebx]
cmp al, 0x22
jne 0x40591d
lea eax, [ebx + 1]
cmp byte [eax], 0x22
je 0x405901
test edx, edx
jne 0x4058f2
inc edx
jmp 0x4058f7
xor ebx, ebx
lea esi, [ebx + 1]
mov ebx, eax
mov dword [ebp - 0x10c], eax
jmp 0x405938
cmp ecx, 0x103
jae 0x405c65
push 2
mov byte [ebp + ecx - 0x108], 0x22
pop eax
inc ecx
add ebx, eax
jmp 0x405932
cmp ecx, 0x103
jae 0x405c65
mov byte [ebp + ecx - 0x108], al
inc ecx
inc ebx
mov dword [ebp - 0x10c], ebx
cmp byte [ebx], 0
jne 0x4058b9
cmp ecx, 0x104
jae 0x405d63
mov byte [ebp + ecx - 0x108], 0
test edx, edx
je 0x4059ac
test esi, esi
jne 0x4059b0
xor edi, edi
cmp dword [0x407a2c], 0
je 0x405d6a
cmp byte [0x407b3e], 0
jne 0x405d6a
push 0x104
push 0x407b3e
push dword [0x408244]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x405d68
push 0x5c
mov eax, 0x407b3e
call fcn.0040623e
mov byte [eax + 1], 0
jmp 0x405d6a
test esi, esi
jne 0x40595d
mov al, byte [ebp - 0x108]
cmp al, 0x2f
je 0x4059c2
cmp al, 0x2d
jne 0x405c65
movsx eax, byte [ebp - 0x107]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
movsx eax, al
sub eax, 0x3f
je 0x405d36
sub eax, 4
je 0x405c6c
dec eax
je 0x405bb6
sub eax, 0xa
je 0x405b3e
sub eax, 3
je 0x405afa
dec eax
je 0x405a19
dec eax
dec eax
je 0x405bb6
xor edi, edi
cmp byte [ebx], 0
jne 0x405877
jmp 0x40595f
mov al, byte [ebp - 0x106]
test al, al
jne 0x405a37
xor eax, eax
inc eax
mov dword [0x408b4c], 3
mov dword [0x407a28], eax
jmp 0x405a0b
cmp al, 0x3a
jne 0x405ad1
xor eax, eax
inc eax
cmp byte [ebp - 0x105], 0
mov dword [0x408b4c], eax
je 0x405a0b
xor ebx, ebx
lea esi, [ebp - 0x105]
inc ebx
movsx eax, byte [esi]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
movsx eax, al
inc esi
sub eax, 0x41
je 0x405ab8
sub eax, 3
je 0x405aaf
sub eax, 5
je 0x405aa6
sub eax, 5
je 0x405a9d
dec eax
dec eax
je 0x405a91
sub eax, 3
je 0x405a88
xor edi, edi
jmp 0x405ac7
or dword [0x408b4c], 4
jmp 0x405ac1
or dword [0x407d48], 0x80
jmp 0x405ac7
and dword [0x408b4c], 0xfffffffe
jmp 0x405ac1
and dword [0x408b4c], 0xfffffffd
jmp 0x405ac1
or dword [0x407d48], 0x40
jmp 0x405ac7
push 2
pop eax
or dword [0x408b4c], eax
mov dword [0x407a28], ebx
cmp byte [esi], 0
jne 0x405a59
jmp 0x405d2b
push 0xffffffffffffffff
lea eax, [ebp - 0x107]
push eax
push 0xffffffffffffffff
xor eax, eax
push 0x4012cc
inc eax
push eax
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringA]
dec eax
dec eax
je 0x405a0b
jmp 0x405a09
mov al, byte [ebp - 0x106]
test al, al
jne 0x405b12
push 2
pop eax
mov word [0x407a38], ax
jmp 0x405a0b
cmp al, 0x3a
jne 0x405a09
movsx eax, byte [ebp - 0x105]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
cmp al, 0x31
je 0x405b04
cmp al, 0x41
je 0x405b39
cmp al, 0x55
je 0x405b04
jmp 0x405a09
xor eax, eax
inc eax
jmp 0x405b07
mov al, byte [ebp - 0x106]
test al, al
jne 0x405b55
xor eax, eax
inc eax
mov dword [0x407a2c], eax
jmp 0x405a0b
cmp al, 0x3a
jne 0x405a09
cmp byte [ebp - 0x105], 0
je 0x405a0b
xor ebx, ebx
lea esi, [ebp - 0x105]
inc ebx
movsx eax, byte [esi]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
movsx eax, al
inc esi
sub eax, 0x45
je 0x405ba6
push 2
pop ecx
sub eax, ecx
je 0x405b9e
sub eax, 0xf
je 0x405b96
xor edi, edi
jmp 0x405bac
mov dword [0x407a34], ebx
jmp 0x405bac
mov dword [0x407a30], ebx
jmp 0x405bac
mov dword [0x407a2c], ebx
cmp byte [esi], 0
jne 0x405b73
jmp 0x405d2b
cmp byte [ebp - 0x106], 0x3a
jne 0x405a09
xor ebx, ebx
cmp byte [ebp - 0x105], 0x22
lea esi, [ebp - 0x108]
sete bl
add ebx, 3
add esi, ebx
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405bdf
sub ecx, edx
jne 0x405bf5
mov ebx, dword [ebp - 0x10c]
jmp 0x405a09
lea eax, [ebp - 0x110]
push eax
mov dword [ebp - 0x110], ebx
call fcn.004057c5
test eax, eax
je 0x405bea
movsx eax, byte [ebp - 0x107]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
cmp al, 0x54
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0x108]
mov esi, 0x104
jne 0x405c37
add eax, ebx
mov ebx, 0x407b3e
jmp 0x405c3e
add eax, ebx
mov ebx, 0x407a3a
add edx, eax
mov eax, esi
mov ecx, ebx
call fcn.0040148d
push esi
mov eax, 0x401044
mov ecx, ebx
call fcn.00406177
mov ecx, ebx
call fcn.00402ef2
test eax, eax
jne 0x405d2b
xor eax, eax
jmp 0x405d6c
mov al, byte [ebp - 0x106]
test al, al
jne 0x405c83
xor eax, eax
inc eax
mov dword [0x407a24], eax
jmp 0x405a0b
cmp al, 0x3a
jne 0x405a09
xor ebx, ebx
cmp byte [ebp - 0x105], 0x22
lea esi, [ebp - 0x108]
sete bl
add ebx, 3
add esi, ebx
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405ca7
sub ecx, edx
je 0x405bea
push 0x5b
mov eax, esi
call fcn.00406117
test eax, eax
je 0x405cd4
push 0x5d
mov eax, esi
call fcn.00406117
test eax, eax
je 0x405bea
push 0x5d
mov eax, esi
call fcn.00406117
test eax, eax
je 0x405cf2
push 0x5b
mov eax, esi
call fcn.00406117
test eax, eax
je 0x405bea
lea eax, [ebp - 0x110]
push eax
mov dword [ebp - 0x110], ebx
call fcn.004057c5
test eax, eax
je 0x405bea
mov eax, dword [ebp - 0x110]
add eax, ebx
lea edx, [ebp - 0x108]
add edx, eax
mov eax, 0x104
mov ecx, 0x407c42
call fcn.0040148d
mov ebx, dword [ebp - 0x10c]
jmp 0x405a0b
xor ebx, ebx
push ebx
push 0x40
push ebx
push 0x401044
push 0x521
push ebx
call fcn.004040e2
mov eax, dword [0x4076ac]
test eax, eax
je 0x405d5c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.004068bb
xor edi, edi
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004068a6
leave
ret