Function at 0x5067de
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, dword [ebp + 0xc]
push ebx
movzx eax, dx
push esi
push edi
cmp eax, 0x5a
jbe 0x506da0
cmp eax, 0x6e
ja 0x506b22
je 0x506b15
cmp eax, 0x65
jbe 0x5068ee
sub eax, 0x67
je 0x5068a5
sub eax, 1
jne 0x506824
push 0x62
pop edx
push edx
pop eax
jmp 0x5067f7
dec eax
sub eax, 1
je 0x506872
sub eax, 3
jne case.default.0x507054
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x506ad1
cmp ecx, 0xb
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
lea eax, [ecx + 1]
push eax
call fcn.005072b6
add esp, 0x14
jmp 0x507280
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
js 0x506ad1
cmp ecx, 0x16d
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 3
jmp 0x506861
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x14], 0xfffff894
jl 0x506ad1
cmp dword [eax + 0x14], 0x1fa3
jg 0x506ad1
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x14]
call fcn.00506794
add esp, 0xc
add eax, 0x76c
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x506865
je 0x506ae8
sub eax, 0x61
je 0x506ab0
sub eax, 1
je 0x506a84
sub eax, 1
je 0x50694b
sub eax, 1
jne case.default.0x507054
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0xc], 1
jl 0x506ad1
cmp dword [eax + 0xc], 0x1f
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne cl
dec cl
and cl, 0x30
movzx ecx, cl
push ecx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push dword [eax + 0xc]
jmp 0x506865
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp ebx, 0x52e2d8
jne 0x506a3a
test al, al
jne 0x506a3a
mov edi, dword [ebp + 0x18]
xor esi, esi
push esi
push ebx
mov ebx, dword [ebp + 0x14]
push edi
push ebx
push dword [ebp + 0x10]
push 0x61
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
jne 0x506995
call fcn.004ad957
mov dword [eax], 0x16
jmp case.default.0x507054
push edi
push ebx
push str.___n:_t_
call fcn.005073b8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x62
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push edi
push ebx
push str.___n:_t_
call fcn.005073b8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x65
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push edi
push ebx
push str.___n:_t_
call fcn.005073b8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x54
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push edi
push ebx
push str.___n:_t_
call fcn.005073b8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x59
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
jne 0x507280
jmp 0x506985
push ebx
push dword [ebp + 0x18]
movzx eax, al
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.005073e9
add esp, 0x18
test al, al
je 0x506985
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push str.___n:_t_
call fcn.005073b8
push ebx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 2
push dword [ebp + 8]
call fcn.005073e9
add esp, 0x24
jmp 0x506a2d
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x506ad1
cmp ecx, 0xb
jg 0x506ad1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xec]
call fcn.005073b8
add esp, 0xc
jmp 0x507280
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x506ad1
cmp ecx, 6
jg 0x506ad1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xb4]
jmp 0x506aa3
call fcn.004ad957
mov dword [eax], 0x16
call fcn.004ad830
xor al, al
jmp 0x507282
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jl 0x506ad1
cmp ecx, 0x1f
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x20
movzx eax, al
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push ecx
jmp 0x506865
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x537ef0
jmp 0x506aa3
cmp eax, 0x77
ja 0x506c87
je 0x506b47
sub eax, 0x70
je 0x506c4e
dec eax
sub eax, 1
je 0x506b90
dec eax
sub eax, 1
je 0x506b80
sub eax, 1
jne case.default.0x507054
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x506ad1
cmp ecx, 6
jg 0x506ad1
test ecx, ecx
jne 0x506b67
cmp dx, 0x75
jne 0x506b67
push 7
pop ecx
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 1
jmp 0x506b0f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x537ef8
jmp 0x506aa3
mov esi, dword [ebp + 0x1c]
push dword [ebp + 0x20]
push esi
cmp esi, 0x52e2d8
jne 0x506c33
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
push edi
push ebx
push dword [ebp + 0x10]
push 0x49
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
je 0x506985
push edi
push ebx
push 0x537ef4
call fcn.005073b8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x4d
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push edi
push ebx
push 0x537ef4
call fcn.005073b8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x53
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push edi
push ebx
push str.___n:_t_
call fcn.005073b8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x70
jmp 0x506a22
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x58
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
jmp 0x506a2d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
test eax, eax
js 0x506ad1
cmp eax, 0x17
jg 0x506ad1
cmp eax, 0xb
mov eax, dword [ebp + 0x1c]
jg 0x506c75
mov eax, dword [eax + 0x14c]
jmp 0x506c7b
mov eax, dword [eax + 0x150]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push eax
jmp 0x506aa3
sub eax, 0x78
je 0x506d7f
sub eax, 1
je 0x506d3f
sub eax, 1
jne case.default.0x507054
call fcn.004ce642
lea eax, [ebp - 4]
xor esi, esi
push eax
mov dword [ebp - 4], esi
call fcn.004cd284
pop ecx
test eax, eax
jne 0x506ad1
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x20], esi
je 0x506ce6
lea eax, [ebp - 8]
mov dword [ebp - 8], esi
push eax
call fcn.004cd258
pop ecx
test eax, eax
jne 0x506ad1
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x506ce9
mov ecx, dword [ebp - 4]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cdq
push 0x3c
pop esi
idiv esi
cdq
idiv esi
test ecx, ecx
mov ecx, 0x537efc
mov edi, edx
mov esi, eax
js 0x506d0b
mov ecx, 0x537eec
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
call fcn.005073b8
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push esi
call fcn.005072b6
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push edi
call fcn.005072b6
add esp, 0x34
jmp 0x507280
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x506ad1
cmp ecx, 0x1fa3
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
lea eax, [ecx + 0x76c]
push dword [ebp + 0x14]
push 2
jmp 0x5068e2
push dword [ebp + 0x1c]
movzx eax, byte [ebp + 0x20]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.005073e9
add esp, 0x18
jmp 0x506a2d
je 0x507215
cmp eax, 0x4d
ja 0x507046
je 0x507030
cmp eax, 0x44
ja 0x506eff
je 0x506e92
sub eax, 0x25
je 0x506e82
sub eax, 0x1c
je 0x506e56
sub eax, 1
je 0x506e2a
sub eax, 1
jne case.default.0x507054
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x506ad1
cmp ecx, 0x1fa3
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
lea eax, [ecx + 0x76c]
push dword [ebp + 0x14]
cdq
push 2
push 0x64
pop ecx
idiv ecx
jmp 0x506864
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x506ad1
cmp ecx, 0xb
jg 0x506ad1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0x11c]
jmp 0x506aa3
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x506ad1
cmp ecx, 6
jg 0x506ad1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xd0]
jmp 0x506aa3
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x537f00
jmp 0x506aa3
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
push esi
push edi
push dword [ebp + 0x10]
push 0x6d
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
je 0x506985
push esi
push edi
mov ebx, 0x52da88
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x64
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push esi
push edi
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x79
jmp 0x506a22
sub eax, 0x46
je 0x506fc3
sub eax, 1
je 0x506f81
sub eax, 1
je 0x506f5a
sub eax, 1
jne case.default.0x507054
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
test eax, eax
js 0x506ad1
cmp eax, 0x17
jg 0x506ad1
push 0xc
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x506f3e
mov edx, ecx
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
jmp 0x5068e8
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x506ad1
cmp ecx, 0x17
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
jmp 0x506b03
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x14], 0xfffff894
jl 0x506ad1
cmp dword [eax + 0x14], 0x1fa3
jg 0x506ad1
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 4
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x14]
call fcn.00506794
add esp, 0xc
add eax, 0x76c
jmp 0x506864
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
push esi
push edi
push dword [ebp + 0x10]
push 0x59
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
je 0x506985
push esi
push edi
mov ebx, 0x537eec
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x6d
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push esi
push edi
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x64
jmp 0x506a22
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
js 0x506ad1
cmp ecx, 0x3b
jmp 0x506f6b
push 7
add eax, 0xffffffae
pop edi
cmp eax, edi
ja case.default.0x507054
jmp dword [eax*4 + 0x507296]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x48
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
je 0x506985
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x537ef4
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x4d
jmp 0x506a22
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
js 0x506ad1
cmp ecx, 0x3c
jmp 0x506f6b
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
push esi
push edi
push dword [ebp + 0x10]
push 0x48
push dword [ebp + 8]
call fcn.005067de
add esp, 0x1c
test al, al
je 0x506985
push esi
push edi
mov ebx, 0x537ef4
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x4d
push dword [ebp + 8]
call fcn.005067de
add esp, 0x28
test al, al
je 0x506985
push esi
push edi
push ebx
call fcn.005073b8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x53
jmp 0x506a22
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x506ad1
cmp ecx, 6
jg 0x506ad1
cmp dx, 0x57
jne 0x50714e
test ecx, ecx
jne 0x50714d
push 6
pop ecx
jmp 0x50714e
dec ecx
mov eax, dword [eax + 0x1c]
test eax, eax
js 0x506ad1
cmp eax, 0x16d
jg 0x506ad1
xor esi, esi
cmp eax, ecx
jl 0x507174
cdq
idiv edi
mov esi, eax
cmp edx, ecx
jl 0x507174
inc esi
cmp byte [ebp + 0x20], 0
setne cl
dec cl
and cl, 0x30
movzx eax, cl
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push esi
jmp 0x506865
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x14]
push 2
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x14]
call fcn.005066b1
add esp, 0xc
jmp 0x506864
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 2
jmp 0x506d90
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x506ad1
cmp ecx, 0x1fa3
jg 0x506ad1
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
movzx eax, al
push eax
push dword [ebp + 0x18]
lea eax, [ecx + 0x76c]
push dword [ebp + 0x14]
push 4
jmp 0x506864
call fcn.004ce642
xor esi, esi
mov dword [ebp - 8], esi
call fcn.004cd226
mov ecx, dword [ebp + 0x10]
push dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0x20]
neg ecx
push 0xffffffffffffffff
sbb ecx, ecx
and ecx, 4
mov eax, dword [eax + ecx]
push eax
push dword [edi]
lea eax, [ebp - 8]
push dword [ebx]
push eax
call fcn.004ce899
add esp, 0x18
test eax, eax
je 0x50725e
cmp eax, 0x16
je 0x507289
cmp eax, 0x22
je 0x507289
cmp eax, 0x50
jne 0x50726d
mov eax, dword [edi]
add eax, eax
add dword [ebx], eax
mov dword [edi], esi
jmp 0x507280
mov ecx, dword [ebp - 8]
xor eax, eax
inc eax
sub eax, ecx
add dword [edi], eax
lea eax, [ecx*2 - 2]
add dword [ebx], eax
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push esi
push esi
push esi
push esi
call fcn.004ad85d
lea ecx, [ecx]
pop ebx
jo 5272297
add byte [ebp - 0x45ffaf90], ah
jo 0x5072f1
add byte [edi], ah
jno 0x5072f5
add byte [edx + 0x27005071], dl
jno 0x5072fd
add dl, al
jno 0x507301
add ch, dl
jno 0x507305
add byte [ebx - 0x1374aa01], cl
sal byte [eax + ecx*2 - 0x75], 0x45
inc ebp
or byte [esi - 0x75], ah
jge 0x507313
cld
or al, byte [eax]
add byte [eax], al
add byte [ecx + 0x7589f845], cl
invalid
ret 0x6630