Function at 0x405fb0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
or eax, 0xffffffff
lea ecx, [ebp - 0x28]
push edi
mov word [ebp - 0x10], ax
xor edi, edi
xor eax, eax
mov dword [ebp - 8], edi
push 0x64
mov word [ebp - 0xe], ax
call fcn.00407786
mov ecx, dword [ebp + 0x10]
call fcn.004071f0
mov ebx, dword [ebp + 0xc]
cmp word [ebx], di
je 0x4061da
lea esp, [esp]
movzx eax, word [ebx + edi*2]
cmp eax, 0x20
je 0x40608e
cmp eax, 9
je 0x40608e
movzx eax, word [ebx + edi*2]
mov dword [ebp - 8], edi
test ax, ax
je 0x4061da
mov esi, eax
mov word [ebp - 0xe], di
cmp esi, 0x30
jae 0x406094
cmp esi, 0x2e
je 0x406099
cmp esi, 0x41
jae 0x4060f5
cmp esi, 0x61
jae 0x406211
cmp esi, 0x5f
je 0x40621a
mov eax, esi
cmp eax, 0x24
je case.0x406068.64
cmp eax, 0x3d
je 0x406256
sub eax, 0x1a
cmp eax, 0x44
ja case.0x406068.27
movzx eax, byte [eax + 0x406564]
jmp dword [eax*4 + 0x406518]
push 0x4f
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
inc edi
jmp 0x405ff0
cmp esi, 0x39
ja 0x406021
mov edi, dword [ebp + 0x10]
mov eax, 0x40
mov dword [ebp + 0xc], eax
mov ecx, dword [edi + 8]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x4060bc
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4 - 4]
movzx eax, word [eax + 8]
mov dword [ebp + 0xc], eax
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push ebx
call fcn.00405cdc
cmp al, 1
jne 0x406491
cmp word [ebp + 0xc], 0x4a
je 0x40643b
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.0040727f
mov edi, dword [ebp - 8]
jmp 0x4061cf
cmp esi, 0x5a
ja 0x40602f
jmp 0x40621a
push dword [ebp + 0x10]
call fcn.00405bb0
test eax, eax
js 0x406512
cmp esi, 0x24
jne 0x4063f3
mov eax, 0x33
push eax
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], edi
call fcn.00407afc
movzx esi, word [ebx + edi*2]
cmp si, 0x5a
jbe 0x40617e
cmp si, 0x61
jb 0x406186
cmp si, 0x7a
ja 0x406186
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
cmp eax, 1
jg 0x43d10f
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
inc eax
push eax
call fcn.004078c3
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov word [ecx + eax*2], si
inc eax
mov dword [ebp - 0x24], eax
inc edi
mov word [ecx + eax*2], dx
jmp 0x406136
cmp si, 0x41
jae 0x40614c
jmp 0x406140
cmp si, 0x30
jae 0x406247
cmp si, 0x5f
je 0x40614c
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x406509
lea ecx, [ebp - 0x28]
call fcn.00407bbf
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call dword [sym.imp.USER32.dll_CharUpperBuffW]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.00405ab1
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
cmp word [ebx + edi*2], 0
jne 0x405ff0
push 0x7f
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
mov word [ebp - 0xe], di
call fcn.0040727f
xor esi, esi
lea ecx, [ebp - 0x28]
call fcn.00405832
lea ecx, [ebp - 0x18]
call fcn.00405b0b
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp esi, 0x7a
ja 0x406038
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push ebx
call fcn.00405be2
cmp dword [ebp - 0x18], 0xffffffff
je 0x43d169
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
mov edi, dword [ebp - 8]
jmp 0x4061cf
cmp si, 0x39
ja 0x406190
jmp 0x40614c
inc edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
je 0x43d0ff
push 0x41
call fcn.00405b22
jmp 0x4061c3
push 0x4e
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x47
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x48
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x40
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 8]
push eax
push ebx
push dword [ebp + 8]
call fcn.00405f2f
lea ecx, [ebp - 0x18]
test eax, eax
js 0x43d184
push 0x36
call fcn.00405b22
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.00405ab1
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
mov edi, dword [ebp - 8]
jmp 0x4061cf
push 0x4d
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x4061c3
inc edi
lea ecx, [ebp - 0x18]
push 0x56
mov dword [ebp - 8], edi
call fcn.00405b22
jmp 0x4061c3
push 0x49
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x4061c3
inc edi
lea ecx, [ebp - 0x18]
push 0x52
mov dword [ebp - 8], edi
call fcn.00405b22
jmp 0x4061c3
push 0x4c
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x4061c3
inc edi
lea ecx, [ebp - 0x18]
push 0x55
mov dword [ebp - 8], edi
call fcn.00405b22
jmp 0x4061c3
push 0x4b
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x4061c3
jmp 0x43d061
push 0x4a
lea ecx, [ebp - 0x18]
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x4061c3
jmp 0x43d04e
mov eax, 0x32
jmp 0x406121
inc edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
je 0x406471
push 0x42
call fcn.00405b22
jmp 0x4061c3
movzx eax, word [ebx + edi*2 + 2]
lea ecx, [ebp - 0x18]
inc edi
mov dword [ebp - 8], edi
sub eax, 0x3d
je 0x4064fd
dec eax
je 0x406481
push 0x43
call fcn.00405b22
jmp 0x4061c3
cmp word [ebp - 0x10], 5
jne 0x4060e2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
neg ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0xc]
adc eax, 0
neg eax
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, 0x49
mov word [eax + 8], cx
jmp 0x4060e2
push 0x45
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
jmp 0x4061c3
push 0x44
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
jmp 0x4061c3
mov edi, dword [ebp - 8]
cmp esi, 0x2e
jne 0x406026
inc edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], edi
call fcn.00407afc
movzx eax, word [ebx + edi*2]
cmp ax, 0x5a
jbe 0x4064cb
cmp ax, 0x61
jb 0x4064d3
cmp ax, 0x7a
ja 0x4064d3
push eax
lea ecx, [ebp - 0x28]
call fcn.00407694
inc edi
jmp 0x4064a9
cmp ax, 0x41
jae 0x4064bf
jmp 0x4064b3
cmp ax, 0x30
jae 0x406501
cmp ax, 0x5f
je 0x4064bf
cmp ax, 0x7f
ja 0x4064bf
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x406509
push 0x35
lea ecx, [ebp - 0x18]
call fcn.00405b22
jmp 0x4061b7
push 0x46
jmp 0x406483
cmp ax, 0x39
jbe 0x4064bf
jmp 0x4064d9
lea eax, [edi - 1]
push eax
jmp 0x43d199
push edi
jmp 0x43d199
inc edi
lea ecx, [ebp - 0x18]
push 0x53
mov dword [ebp - 8], edi
call fcn.00405b22
jmp 0x4061c3
inc edi
lea ecx, [ebp - 0x18]
push 0x54
mov dword [ebp - 8], edi
call fcn.00405b22
jmp 0x4061c3
push 0x51
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x57
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x58
lea ecx, [ebp - 0x18]
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
inc edi
mov dword [ebp - 8], edi
jmp 0x4061cf
test edi, edi
jne case.0x406068.27
cmp word [ebx + 2], di
jne case.0x406068.27
mov eax, dword [ebp + 8]
cmp eax, dword [0x4c42c0]
jl case.0x406068.27
mov edi, 1
mov dword [ebp - 8], edi
jmp 0x4061cf
push 0x50
call fcn.00405b22
inc edi
mov dword [ebp - 8], edi
jmp 0x4061c3
dec eax
mov dword [ecx], eax
lea ecx, [ebp - 0x28]
call fcn.00405814
mov eax, dword [ebp - 0x24]
add eax, 2
push eax
call fcn.00407d12
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041fd2e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0xc], edx
lea ecx, [eax*2 + 2]
push ecx
push dword [ebp - 0x28]
push edx
call fcn.0041fdb0
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebp - 0x28], ecx
jmp 0x40616a
push dword [ebp - 8]
push 0x138c
jmp 0x43d19e
push edi
push 0x1388
push dword [ebp + 8]
call fcn.0045e890
lea ecx, [ebp - 0x18]
push 0x7f
call fcn.00405b22
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.0040727f
jmp 0x43d1a6
push 0x138b
push dword [ebp + 8]
call fcn.0045e890
or esi, 0xffffffff
jmp 0x4061f6