Function at 0x40c96c
Capabilities:
Parse pe header

Disassembly:
push 0x28
mov eax, 0x428cfc
call fcn.00417859
mov dword [ebp - 0x14], ecx
or ecx, 0xffffffff
xor eax, eax
mov word [ebp - 0x1c], cx
mov esi, eax
xor ecx, ecx
mov dword [ebp - 0x10], esi
mov word [ebp - 0x1a], cx
push 0x64
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], eax
call fcn.00409319
mov ebx, dword [ebp + 0x10]
mov ecx, ebx
mov byte [ebp - 4], 1
call fcn.0040c86b
mov ecx, dword [ebp + 0xc]
xor edx, edx
cmp word [ecx], dx
je 0x40ce9b
movzx eax, word [ecx + esi*2]
cmp eax, 0x20
je 0x40c9c6
cmp eax, 9
jne 0x40c9c9
inc esi
jmp 0x40c9b8
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], esi
movzx eax, word [eax + esi*2]
test ax, ax
je 0x40ce9b
mov edi, eax
mov word [ebp - 0x1a], si
push 0x30
pop eax
cmp di, ax
jb 0x40c9f2
push 0x39
pop eax
cmp di, ax
jbe 0x40c9fe
push 0x2e
pop eax
cmp di, ax
jne 0x40cb00
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x18], ecx
push 0x40
pop esi
test ecx, ecx
je 0x40ca16
mov eax, dword [ebx + 4]
mov eax, dword [eax + ecx*4 - 4]
movzx esi, word [eax + 8]
push esi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
call fcn.0040d002
cmp al, 1
jne 0x40ca75
push 0x4a
pop eax
cmp si, ax
jne 0x40ca62
cmp word [ebp - 0x1c], 5
jne 0x40ca62
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
neg ecx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x18]
adc eax, 0
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 4]
push 0x49
mov eax, dword [eax + ecx*4 - 4]
pop ecx
mov word [eax + 8], cx
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
mov esi, dword [ebp - 0x10]
jmp 0x40ce8c
mov esi, dword [ebp - 0x10]
push 0x2e
pop eax
cmp di, ax
jne 0x40cafe
inc esi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x10], esi
call fcn.00401715
mov ebx, dword [ebp + 0xc]
push 0x30
pop edi
movzx eax, word [ebx + esi*2]
push 0x41
pop ecx
cmp ax, cx
jb 0x40caa6
push 0x5a
pop ecx
cmp ax, cx
jbe 0x40cad3
push 0x61
pop ecx
cmp ax, cx
jb 0x40cab6
push 0x7a
pop ecx
cmp ax, cx
jbe 0x40cad3
cmp ax, di
jb 0x40cac3
push 0x39
pop ecx
cmp ax, cx
jbe 0x40cad3
push 0x5f
pop ecx
cmp ax, cx
je 0x40cad3
push 0x7f
pop ecx
cmp ax, cx
jbe 0x40cadf
push eax
lea ecx, [ebp - 0x34]
call fcn.00408bc5
inc esi
jmp 0x40ca92
cmp dword [ebp - 0x30], 0
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x10], esi
je 0x40ced2
push 0x35
lea ecx, [ebp - 0x24]
call fcn.0040db06
jmp 0x40ce75
xor edx, edx
push 0x41
pop eax
cmp di, ax
jb 0x40cb10
push 0x5a
pop eax
cmp di, ax
jbe 0x40cb28
push 0x61
pop eax
cmp di, ax
jb 0x40cb20
push 0x7a
pop eax
cmp di, ax
jbe 0x40cb28
push 0x5f
pop eax
cmp di, ax
jne 0x40cb5a
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
call fcn.0040d22b
cmp dword [ebp - 0x24], 0xffffffff
jne 0x40ca62
push dword [ebp - 0x10]
mov ecx, esi
push 0x138c
jmp 0x40cf65
mov eax, edi
cmp eax, 0x2d
jg 0x40cce3
je 0x40ccbc
cmp eax, 0x27
jg 0x40cc35
je 0x40cbfc
sub eax, 0x1a
je 0x40cbcf
sub eax, 8
je 0x40cbfc
dec eax
je 0x40cbc7
dec eax
je 0x40cddc
dec eax
dec eax
jne 0x40cf2c
push 0x4d
lea ecx, [ebp - 0x24]
call fcn.0040db06
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
jne 0x40ce81
push 0x56
inc esi
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x10], esi
call fcn.0040db06
jmp 0x40ce81
test esi, esi
je 0x40cedb
test esi, esi
jne 0x40cf2c
mov ecx, dword [ebp + 0xc]
cmp word [ecx + 2], dx
jne 0x40cf2c
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
cmp edi, dword [eax + 0x24]
jl 0x40cf2c
inc esi
mov dword [ebp - 0x10], esi
jmp 0x40ce91
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040cf77
lea ecx, [ebp - 0x24]
test eax, eax
js 0x40cf16
push 0x36
call fcn.0040db06
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040dabe
jmp 0x40ca62
sub eax, 0x28
je 0x40ccb8
dec eax
je 0x40ccb4
dec eax
je 0x40cc8f
dec eax
je 0x40cc68
dec eax
jne 0x40cf2c
push 0x40
lea ecx, [ebp - 0x24]
call fcn.0040db06
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
inc esi
mov dword [ebp - 0x10], esi
jmp 0x40ce8c
push 0x49
pop eax
push eax
lea ecx, [ebp - 0x24]
call fcn.0040db06
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
jne 0x40ce81
push 0x52
jmp 0x40cbb6
push 0x4c
lea ecx, [ebp - 0x24]
call fcn.0040db06
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
jne 0x40ce81
push 0x55
jmp 0x40cbb6
push 0x48
jmp 0x40cc4c
push 0x47
jmp 0x40cc4c
push 0x4a
pop eax
push eax
lea ecx, [ebp - 0x24]
call fcn.0040db06
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
jne 0x40ce81
push 0x53
jmp 0x40cbb6
cmp eax, 0x3f
jg 0x40cdb2
je 0x40cdab
sub eax, 0x2f
je 0x40cd86
sub eax, 0xb
je 0x40cd7f
dec eax
dec eax
je 0x40cd58
dec eax
je 0x40cd38
dec eax
jne 0x40cf2c
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
lea ecx, [ebp - 0x24]
je 0x40cd28
push 0x42
jmp 0x40cbbd
push 0x45
call fcn.0040db06
inc esi
mov dword [ebp - 0x10], esi
jmp 0x40ce81
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
lea ecx, [ebp - 0x24]
je 0x40cd54
push 0x41
pop eax
push eax
jmp 0x40cbbd
push 0x50
jmp 0x40cd2a
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
movzx eax, word [eax + esi*2]
sub eax, ecx
lea ecx, [ebp - 0x24]
je 0x40cd7b
dec eax
je 0x40cd77
push 0x43
jmp 0x40cbbd
push 0x44
jmp 0x40cd2a
push 0x46
jmp 0x40cd2a
push 0x58
jmp 0x40cc4c
push 0x4b
lea ecx, [ebp - 0x24]
call fcn.0040db06
mov eax, dword [ebp + 0xc]
inc esi
push 0x3d
pop ecx
mov dword [ebp - 0x10], esi
cmp word [eax + esi*2], cx
jne 0x40ce81
push 0x54
jmp 0x40cbb6
push 0x57
jmp 0x40cc4c
sub eax, 0x40
je 0x40cddc
sub eax, 0x1b
je 0x40cdd5
dec eax
dec eax
je 0x40cdce
dec eax
jne 0x40cf2c
push 0x51
jmp 0x40cc4c
push 0x4f
jmp 0x40cc4c
push 0x4e
jmp 0x40cc4c
push ebx
call fcn.0040bef1
test eax, eax
js 0x40cf5c
xor eax, eax
lea ecx, [ebp - 0x24]
cmp edi, 0x24
sete al
add eax, 0x32
push eax
call fcn.0040db06
inc esi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x10], esi
call fcn.00401715
mov ebx, dword [ebp + 0xc]
push 0x30
pop edi
movzx eax, word [ebx + esi*2]
push 0x41
pop ecx
cmp ax, cx
jb 0x40ce24
push 0x5a
pop ecx
cmp ax, cx
jbe 0x40ce49
push 0x61
pop ecx
cmp ax, cx
jb 0x40ce34
push 0x7a
pop ecx
cmp ax, cx
jbe 0x40ce49
cmp ax, di
jb 0x40ce41
push 0x39
pop ecx
cmp ax, cx
jbe 0x40ce49
push 0x5f
pop ecx
cmp ax, cx
jne 0x40ce55
push eax
lea ecx, [ebp - 0x34]
call fcn.00408bc5
inc esi
jmp 0x40ce10
cmp dword [ebp - 0x30], 0
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x10], esi
je 0x40ced2
lea ecx, [ebp - 0x34]
call fcn.00401690
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call dword [sym.imp.USER32.dll_CharUpperBuffW]
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040dabe
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
mov ecx, dword [ebp + 0xc]
xor edx, edx
cmp word [ecx + esi*2], dx
jne 0x40c9b8
push 0x7f
pop eax
push eax
lea ecx, [ebp - 0x24]
call fcn.0040db06
lea eax, [ebp - 0x24]
mov word [ebp - 0x1a], si
push eax
mov ecx, ebx
call fcn.0040c7d3
xor ebx, ebx
lea ecx, [ebp - 0x34]
call fcn.004015bf
lea ecx, [ebp - 0x24]
call fcn.0040d9b8
mov eax, ebx
call fcn.00417836
ret 0xc
lea eax, [esi - 1]
push eax
jmp 0x40cf5d
push 0x37
lea ecx, [ebp - 0x24]
call fcn.0040db06
push dword [ebp + 0xc]
lea ecx, [ebp - 0x24]
call fcn.0040da69
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
push 0x7f
pop eax
push eax
lea ecx, [ebp - 0x24]
call fcn.0040db06
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
xor eax, eax
jmp 0x40cf70
push 0x7f
pop eax
push eax
call fcn.0040db06
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
jmp 0x40cf6d
mov ecx, dword [ebp - 0x14]
push esi
push 0x1388
push dword [ebp + 8]
call fcn.0040a7f0
push 0x7f
pop eax
push eax
lea ecx, [ebp - 0x24]
call fcn.0040db06
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.0040c7d3
or ebx, 0xffffffff
jmp 0x40ceb8
push esi
mov ecx, dword [ebp - 0x14]
push 0x138b
push dword [ebp + 8]
call fcn.0040a7f0
or eax, 0xffffffff
mov ebx, eax
jmp 0x40ceb8