Function at 0x4058d6
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [section..data]
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 0x405dfb
cmp byte [ebx], 0
je 0x405dfb
test edi, edi
je 0x4059ee
mov al, byte [ebx]
cmp al, 0x20
je 0x405928
cmp al, 9
je 0x405928
cmp al, 0xd
je 0x405928
cmp al, 0xa
je 0x405928
cmp al, 0xb
je 0x405928
cmp al, 0xc
jne 0x405933
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ebx, eax
jmp 0x40590e
cmp byte [ebx], 0
mov dword [ebp - 0x10c], ebx
je 0x4059ee
xor ecx, ecx
xor edx, edx
xor esi, esi
test edx, edx
jne 0x405968
mov al, byte [ebx]
cmp al, 0x20
je 0x4059d0
cmp al, 9
je 0x4059d0
cmp al, 0xd
je 0x4059d0
cmp al, 0xa
je 0x4059d0
cmp al, 0xb
je 0x4059d0
cmp al, 0xc
je 0x4059d0
jmp 0x40596c
test esi, esi
jne 0x4059d0
mov al, byte [ebx]
cmp al, 0x22
jne 0x4059ac
lea eax, [ebx + 1]
cmp byte [eax], 0x22
je 0x405990
test edx, edx
jne 0x405981
inc edx
jmp 0x405986
xor ebx, ebx
lea esi, [ebx + 1]
mov ebx, eax
mov dword [ebp - 0x10c], eax
jmp 0x4059c7
cmp ecx, 0x103
jae 0x405cf4
push 2
mov byte [ebp + ecx - 0x108], 0x22
pop eax
inc ecx
add ebx, eax
jmp 0x4059c1
cmp ecx, 0x103
jae 0x405cf4
mov byte [ebp + ecx - 0x108], al
inc ecx
inc ebx
mov dword [ebp - 0x10c], ebx
cmp byte [ebx], 0
jne 0x405948
cmp ecx, 0x104
jae 0x405df2
mov byte [ebp + ecx - 0x108], 0
test edx, edx
je 0x405a3b
test esi, esi
jne 0x405a3f
xor edi, edi
cmp dword [0x408d2c], 0
je 0x405df9
cmp byte [0x408e3e], 0
jne 0x405df9
push 0x104
push 0x408e3e
push dword [0x409544]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x405df7
push 0x5c
mov eax, 0x408e3e
call fcn.004062cd
mov byte [eax + 1], 0
jmp 0x405df9
test esi, esi
jne 0x4059ec
mov al, byte [ebp - 0x108]
cmp al, 0x2f
je 0x405a51
cmp al, 0x2d
jne 0x405cf4
movsx eax, byte [ebp - 0x107]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
movsx eax, al
sub eax, 0x3f
je 0x405dc5
sub eax, 4
je 0x405cfb
dec eax
je 0x405c45
sub eax, 0xa
je 0x405bcd
sub eax, 3
je 0x405b89
dec eax
je 0x405aa8
dec eax
dec eax
je 0x405c45
xor edi, edi
cmp byte [ebx], 0
jne 0x405906
jmp 0x4059ee
mov al, byte [ebp - 0x106]
test al, al
jne 0x405ac6
xor eax, eax
inc eax
mov dword [0x409e4c], 3
mov dword [0x408d28], eax
jmp 0x405a9a
cmp al, 0x3a
jne 0x405b60
xor eax, eax
inc eax
cmp byte [ebp - 0x105], 0
mov dword [0x409e4c], eax
je 0x405a9a
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 0x405b47
sub eax, 3
je 0x405b3e
sub eax, 5
je 0x405b35
sub eax, 5
je 0x405b2c
dec eax
dec eax
je 0x405b20
sub eax, 3
je 0x405b17
xor edi, edi
jmp 0x405b56
or dword [0x409e4c], 4
jmp 0x405b50
or dword [0x409048], 0x80
jmp 0x405b56
and dword [0x409e4c], 0xfffffffe
jmp 0x405b50
and dword [0x409e4c], 0xfffffffd
jmp 0x405b50
or dword [0x409048], 0x40
jmp 0x405b56
push 2
pop eax
or dword [0x409e4c], eax
mov dword [0x408d28], ebx
cmp byte [esi], 0
jne 0x405ae8
jmp 0x405dba
push 0xffffffffffffffff
lea eax, [ebp - 0x107]
push eax
push 0xffffffffffffffff
xor eax, eax
push 0x401358
inc eax
push eax
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringA]
dec eax
dec eax
je 0x405a9a
jmp 0x405a98
mov al, byte [ebp - 0x106]
test al, al
jne 0x405ba1
push 2
pop eax
mov word [0x408d38], ax
jmp 0x405a9a
cmp al, 0x3a
jne 0x405a98
movsx eax, byte [ebp - 0x105]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
cmp al, 0x31
je 0x405b93
cmp al, 0x41
je 0x405bc8
cmp al, 0x55
je 0x405b93
jmp 0x405a98
xor eax, eax
inc eax
jmp 0x405b96
mov al, byte [ebp - 0x106]
test al, al
jne 0x405be4
xor eax, eax
inc eax
mov dword [0x408d2c], eax
jmp 0x405a9a
cmp al, 0x3a
jne 0x405a98
cmp byte [ebp - 0x105], 0
je 0x405a9a
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 0x405c35
push 2
pop ecx
sub eax, ecx
je 0x405c2d
sub eax, 0xf
je 0x405c25
xor edi, edi
jmp 0x405c3b
mov dword [0x408d34], ebx
jmp 0x405c3b
mov dword [0x408d30], ebx
jmp 0x405c3b
mov dword [0x408d2c], ebx
cmp byte [esi], 0
jne 0x405c02
jmp 0x405dba
cmp byte [ebp - 0x106], 0x3a
jne 0x405a98
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 0x405c6e
sub ecx, edx
jne 0x405c84
mov ebx, dword [ebp - 0x10c]
jmp 0x405a98
lea eax, [ebp - 0x110]
push eax
mov dword [ebp - 0x110], ebx
call fcn.00405854
test eax, eax
je 0x405c79
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 0x405cc6
add eax, ebx
mov ebx, 0x408e3e
jmp 0x405ccd
add eax, ebx
mov ebx, 0x408d3a
add edx, eax
mov eax, esi
mov ecx, ebx
call fcn.0040151d
push esi
mov eax, 0x4010d1
mov ecx, ebx
call fcn.00406206
mov ecx, ebx
call fcn.00402f82
test eax, eax
jne 0x405dba
xor eax, eax
jmp 0x405dfb
mov al, byte [ebp - 0x106]
test al, al
jne 0x405d12
xor eax, eax
inc eax
mov dword [0x408d24], eax
jmp 0x405a9a
cmp al, 0x3a
jne 0x405a98
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 0x405d36
sub ecx, edx
je 0x405c79
push 0x5b
mov eax, esi
call fcn.004061a6
test eax, eax
je 0x405d63
push 0x5d
mov eax, esi
call fcn.004061a6
test eax, eax
je 0x405c79
push 0x5d
mov eax, esi
call fcn.004061a6
test eax, eax
je 0x405d81
push 0x5b
mov eax, esi
call fcn.004061a6
test eax, eax
je 0x405c79
lea eax, [ebp - 0x110]
push eax
mov dword [ebp - 0x110], ebx
call fcn.00405854
test eax, eax
je 0x405c79
mov eax, dword [ebp - 0x110]
add eax, ebx
lea edx, [ebp - 0x108]
add edx, eax
mov eax, 0x104
mov ecx, 0x408f42
call fcn.0040151d
mov ebx, dword [ebp - 0x10c]
jmp 0x405a9a
xor ebx, ebx
push ebx
push 0x40
push ebx
push 0x4010d1
push 0x521
push ebx
call fcn.00404172
mov eax, dword [0x4089ac]
test eax, eax
je 0x405deb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.0040694a
xor edi, edi
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406935
leave
ret