Function at 0x406200
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.004079d6
mov ecx, dword [ebp + 0x10]
call fcn.00407440
mov ebx, dword [ebp + 0xc]
cmp word [ebx], di
je 0x40642a
lea esp, [esp]
movzx eax, word [ebx + edi*2]
cmp eax, 0x20
je 0x40633f
cmp eax, 9
je 0x40633f
movzx eax, word [ebx + edi*2]
mov dword [ebp - 8], edi
test ax, ax
je 0x40642a
mov esi, eax
mov word [ebp - 0xe], di
cmp esi, 0x30
jae 0x4062de
cmp esi, 0x2e
je 0x4062e3
cmp esi, 0x41
jae 0x406345
cmp esi, 0x61
jae 0x406461
cmp esi, 0x5f
je 0x40646a
mov eax, esi
cmp eax, 0x24
je case.0x4062b8.64
cmp eax, 0x3d
je 0x4064a6
sub eax, 0x1a
cmp eax, 0x44
ja case.0x4062b8.27
movzx eax, byte [eax + 0x4067b4]
jmp dword [eax*4 + 0x406768]
push 0x4f
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
cmp esi, 0x39
ja 0x406271
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 0x406306
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.00405f2c
cmp al, 1
jne 0x4066e1
cmp word [ebp + 0xc], 0x4a
je 0x40668b
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.004074cf
mov edi, dword [ebp - 8]
jmp 0x40641f
inc edi
jmp 0x406240
cmp esi, 0x5a
ja 0x40627f
jmp 0x40646a
push dword [ebp + 0x10]
call fcn.00405e00
test eax, eax
js 0x406762
cmp esi, 0x24
jne 0x406625
mov eax, 0x33
push eax
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], edi
call fcn.00407d4c
movzx esi, word [ebx + edi*2]
cmp si, 0x5a
jbe 0x4063ce
cmp si, 0x61
jb 0x4063d6
cmp si, 0x7a
ja 0x4063d6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
cmp eax, 1
jg 0x43ea32
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
inc eax
push eax
call fcn.00407b13
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 0x406386
cmp si, 0x41
jae 0x40639c
jmp 0x406390
cmp si, 0x30
jae 0x406497
cmp si, 0x5f
je 0x40639c
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x406759
lea ecx, [ebp - 0x28]
call fcn.00407e0f
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.00405d01
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
cmp word [ebx + edi*2], 0
jne 0x406240
push 0x7f
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
mov word [ebp - 0xe], di
call fcn.004074cf
xor esi, esi
lea ecx, [ebp - 0x28]
call fcn.004058c4
lea ecx, [ebp - 0x18]
call fcn.00405d5b
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp esi, 0x7a
ja 0x406288
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
push ebx
call fcn.00405e32
cmp dword [ebp - 0x18], 0xffffffff
je 0x43ea8c
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
mov edi, dword [ebp - 8]
jmp 0x40641f
cmp si, 0x39
ja 0x4063e0
jmp 0x40639c
inc edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
je 0x43ea22
push 0x41
call fcn.00405d72
jmp 0x406413
push 0x4e
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x47
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x48
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x40
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 8]
push eax
push ebx
push dword [ebp + 8]
call fcn.0040617f
lea ecx, [ebp - 0x18]
test eax, eax
js 0x43eaa7
push 0x36
call fcn.00405d72
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.00405d01
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
mov edi, dword [ebp - 8]
jmp 0x40641f
push 0x4d
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x406413
inc edi
lea ecx, [ebp - 0x18]
push 0x56
mov dword [ebp - 8], edi
call fcn.00405d72
jmp 0x406413
push 0x49
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x406413
inc edi
lea ecx, [ebp - 0x18]
push 0x52
mov dword [ebp - 8], edi
call fcn.00405d72
jmp 0x406413
push 0x4c
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x406413
inc edi
lea ecx, [ebp - 0x18]
push 0x55
mov dword [ebp - 8], edi
call fcn.00405d72
jmp 0x406413
push 0x4b
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x406413
jmp 0x43e984
mov eax, 0x32
jmp 0x406371
push 0x4a
lea ecx, [ebp - 0x18]
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
jne 0x406413
jmp 0x43e971
inc edi
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], edi
cmp word [ebx + edi*2], 0x3d
je 0x4066c1
push 0x42
call fcn.00405d72
jmp 0x406413
movzx eax, word [ebx + edi*2 + 2]
lea ecx, [ebp - 0x18]
inc edi
mov dword [ebp - 8], edi
sub eax, 0x3d
je 0x40674d
dec eax
je 0x4066d1
push 0x43
call fcn.00405d72
jmp 0x406413
cmp word [ebp - 0x10], 5
jne 0x40632c
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 0x40632c
push 0x45
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
jmp 0x406413
push 0x44
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
jmp 0x406413
mov edi, dword [ebp - 8]
cmp esi, 0x2e
jne 0x406276
inc edi
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], edi
call fcn.00407d4c
movzx eax, word [ebx + edi*2]
cmp ax, 0x5a
jbe 0x40671b
cmp ax, 0x61
jb 0x406723
cmp ax, 0x7a
ja 0x406723
push eax
lea ecx, [ebp - 0x28]
call fcn.004078e4
inc edi
jmp 0x4066f9
cmp ax, 0x41
jae 0x40670f
jmp 0x406703
cmp ax, 0x30
jae 0x406751
cmp ax, 0x5f
je 0x40670f
cmp ax, 0x7f
ja 0x40670f
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x406759
push 0x35
lea ecx, [ebp - 0x18]
call fcn.00405d72
jmp 0x406407
push 0x46
jmp 0x4066d3
cmp ax, 0x39
jbe 0x40670f
jmp 0x406729
lea eax, [edi - 1]
push eax
jmp 0x43eabc
push edi
jmp 0x43eabc
inc edi
lea ecx, [ebp - 0x18]
push 0x53
mov dword [ebp - 8], edi
call fcn.00405d72
jmp 0x406413
inc edi
lea ecx, [ebp - 0x18]
push 0x54
mov dword [ebp - 8], edi
call fcn.00405d72
jmp 0x406413
push 0x51
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x57
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x58
lea ecx, [ebp - 0x18]
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
inc edi
mov dword [ebp - 8], edi
jmp 0x40641f
test edi, edi
jne case.0x4062b8.27
cmp word [ebx + 2], di
jne case.0x4062b8.27
mov eax, dword [ebp + 8]
cmp eax, dword [0x4c82a0]
jl case.0x4062b8.27
mov edi, 1
mov dword [ebp - 8], edi
jmp 0x40641f
push 0x50
call fcn.00405d72
inc edi
mov dword [ebp - 8], edi
jmp 0x406413
dec eax
mov dword [ecx], eax
lea ecx, [ebp - 0x28]
call fcn.00407fe9
mov eax, dword [ebp - 0x24]
add eax, 2
push eax
call fcn.00407fd0
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004218c6
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.00421950
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebp - 0x28], ecx
jmp 0x4063ba
push dword [ebp - 8]
push 0x138c
jmp 0x43eac1
push edi
push 0x1388
push dword [ebp + 8]
call fcn.004603e9
lea ecx, [ebp - 0x18]
push 0x7f
call fcn.00405d72
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.004074cf
jmp 0x43eac9
push 0x138b
push dword [ebp + 8]
call fcn.004603e9
or esi, 0xffffffff
jmp 0x406446