Function at 0x506d0e
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 0x5072d0
cmp eax, 0x6e
ja 0x507052
je 0x507045
cmp eax, 0x65
jbe 0x506e1e
sub eax, 0x67
je 0x506dd5
sub eax, 1
jne 0x506d54
push 0x62
pop edx
push edx
pop eax
jmp 0x506d27
dec eax
sub eax, 1
je 0x506da2
sub eax, 3
jne case.default.0x507584
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x507001
cmp ecx, 0xb
jg 0x507001
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.005077e6
add esp, 0x14
jmp 0x5077b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
js 0x507001
cmp ecx, 0x16d
jg 0x507001
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 0x506d91
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x14], 0xfffff894
jl 0x507001
cmp dword [eax + 0x14], 0x1fa3
jg 0x507001
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.00506cc4
add esp, 0xc
add eax, 0x76c
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x506d95
je 0x507018
sub eax, 0x61
je 0x506fe0
sub eax, 1
je 0x506fb4
sub eax, 1
je 0x506e7b
sub eax, 1
jne case.default.0x507584
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0xc], 1
jl 0x507001
cmp dword [eax + 0xc], 0x1f
jg 0x507001
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 0x506d95
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
cmp ebx, 0x52e4f8
jne 0x506f6a
test al, al
jne 0x506f6a
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.00506d0e
add esp, 0x1c
test al, al
jne 0x506ec5
call fcn.004ade87
mov dword [eax], 0x16
jmp case.default.0x507584
push edi
push ebx
push str.___n:_t_
call fcn.005078e8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x62
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push edi
push ebx
push str.___n:_t_
call fcn.005078e8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x65
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push edi
push ebx
push str.___n:_t_
call fcn.005078e8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x54
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push edi
push ebx
push str.___n:_t_
call fcn.005078e8
push esi
push dword [ebp + 0x1c]
push edi
push ebx
push dword [ebp + 0x10]
push 0x59
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
jne 0x5077b0
jmp 0x506eb5
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.00507919
add esp, 0x18
test al, al
je 0x506eb5
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push str.___n:_t_
call fcn.005078e8
push ebx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 2
push dword [ebp + 8]
call fcn.00507919
add esp, 0x24
jmp 0x506f5d
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x507001
cmp ecx, 0xb
jg 0x507001
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xec]
call fcn.005078e8
add esp, 0xc
jmp 0x5077b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x507001
cmp ecx, 6
jg 0x507001
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xb4]
jmp 0x506fd3
call fcn.004ade87
mov dword [eax], 0x16
call fcn.004add60
xor al, al
jmp 0x5077b2
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jl 0x507001
cmp ecx, 0x1f
jg 0x507001
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 0x506d95
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x538110
jmp 0x506fd3
cmp eax, 0x77
ja 0x5071b7
je 0x507077
sub eax, 0x70
je 0x50717e
dec eax
sub eax, 1
je 0x5070c0
dec eax
sub eax, 1
je 0x5070b0
sub eax, 1
jne case.default.0x507584
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x507001
cmp ecx, 6
jg 0x507001
test ecx, ecx
jne 0x507097
cmp dx, 0x75
jne 0x507097
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 0x50703f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x538118
jmp 0x506fd3
mov esi, dword [ebp + 0x1c]
push dword [ebp + 0x20]
push esi
cmp esi, 0x52e4f8
jne 0x507163
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.00506d0e
add esp, 0x1c
test al, al
je 0x506eb5
push edi
push ebx
push 0x538114
call fcn.005078e8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x4d
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push edi
push ebx
push 0x538114
call fcn.005078e8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x53
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push edi
push ebx
push str.___n:_t_
call fcn.005078e8
push dword [ebp + 0x20]
push esi
push edi
push ebx
push dword [ebp + 0x10]
push 0x70
jmp 0x506f52
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x58
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x1c
jmp 0x506f5d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
test eax, eax
js 0x507001
cmp eax, 0x17
jg 0x507001
cmp eax, 0xb
mov eax, dword [ebp + 0x1c]
jg 0x5071a5
mov eax, dword [eax + 0x14c]
jmp 0x5071ab
mov eax, dword [eax + 0x150]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push eax
jmp 0x506fd3
sub eax, 0x78
je 0x5072af
sub eax, 1
je 0x50726f
sub eax, 1
jne case.default.0x507584
call fcn.004ceb72
lea eax, [ebp - 4]
xor esi, esi
push eax
mov dword [ebp - 4], esi
call fcn.004cd7b4
pop ecx
test eax, eax
jne 0x507001
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x20], esi
je 0x507216
lea eax, [ebp - 8]
mov dword [ebp - 8], esi
push eax
call fcn.004cd788
pop ecx
test eax, eax
jne 0x507001
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x507219
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, 0x53811c
mov edi, edx
mov esi, eax
js 0x50723b
mov ecx, 0x53810c
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
call fcn.005078e8
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push esi
call fcn.005077e6
push 0x30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 2
push edi
call fcn.005077e6
add esp, 0x34
jmp 0x5077b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x507001
cmp ecx, 0x1fa3
jg 0x507001
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 0x506e12
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.00507919
add esp, 0x18
jmp 0x506f5d
je 0x507745
cmp eax, 0x4d
ja 0x507576
je 0x507560
cmp eax, 0x44
ja 0x50742f
je 0x5073c2
sub eax, 0x25
je 0x5073b2
sub eax, 0x1c
je 0x507386
sub eax, 1
je 0x50735a
sub eax, 1
jne case.default.0x507584
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x507001
cmp ecx, 0x1fa3
jg 0x507001
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 0x506d94
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
js 0x507001
cmp ecx, 0xb
jg 0x507001
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0x11c]
jmp 0x506fd3
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x507001
cmp ecx, 6
jg 0x507001
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [eax + ecx*4 + 0xd0]
jmp 0x506fd3
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x538120
jmp 0x506fd3
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.00506d0e
add esp, 0x1c
test al, al
je 0x506eb5
push esi
push edi
mov ebx, 0x52dca8
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x64
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push esi
push edi
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x79
jmp 0x506f52
sub eax, 0x46
je 0x5074f3
sub eax, 1
je 0x5074b1
sub eax, 1
je 0x50748a
sub eax, 1
jne case.default.0x507584
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
test eax, eax
js 0x507001
cmp eax, 0x17
jg 0x507001
push 0xc
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x50746e
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 0x506e18
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x507001
cmp ecx, 0x17
jg 0x507001
cmp byte [ebp + 0x20], 0
setne al
dec al
and al, 0x30
jmp 0x507033
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x14], 0xfffff894
jl 0x507001
cmp dword [eax + 0x14], 0x1fa3
jg 0x507001
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.00506cc4
add esp, 0xc
add eax, 0x76c
jmp 0x506d94
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.00506d0e
add esp, 0x1c
test al, al
je 0x506eb5
push esi
push edi
mov ebx, 0x53810c
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x6d
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push esi
push edi
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x64
jmp 0x506f52
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
js 0x507001
cmp ecx, 0x3b
jmp 0x50749b
push 7
add eax, 0xffffffae
pop edi
cmp eax, edi
ja case.default.0x507584
jmp dword [eax*4 + 0x5077c6]
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.00506d0e
add esp, 0x1c
test al, al
je 0x506eb5
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x538114
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x4d
jmp 0x506f52
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
js 0x507001
cmp ecx, 0x3c
jmp 0x50749b
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.00506d0e
add esp, 0x1c
test al, al
je 0x506eb5
push esi
push edi
mov ebx, 0x538114
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x4d
push dword [ebp + 8]
call fcn.00506d0e
add esp, 0x28
test al, al
je 0x506eb5
push esi
push edi
push ebx
call fcn.005078e8
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push esi
push edi
push dword [ebp + 0x10]
push 0x53
jmp 0x506f52
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
js 0x507001
cmp ecx, 6
jg 0x507001
cmp dx, 0x57
jne 0x50767e
test ecx, ecx
jne 0x50767d
push 6
pop ecx
jmp 0x50767e
dec ecx
mov eax, dword [eax + 0x1c]
test eax, eax
js 0x507001
cmp eax, 0x16d
jg 0x507001
xor esi, esi
cmp eax, ecx
jl 0x5076a4
cdq
idiv edi
mov esi, eax
cmp edx, ecx
jl 0x5076a4
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 0x506d95
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.00506be1
add esp, 0xc
jmp 0x506d94
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 2
jmp 0x5072c0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
cmp ecx, 0xfffff894
jl 0x507001
cmp ecx, 0x1fa3
jg 0x507001
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 0x506d94
call fcn.004ceb72
xor esi, esi
mov dword [ebp - 8], esi
call fcn.004cd756
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.004cedc9
add esp, 0x18
test eax, eax
je 0x50778e
cmp eax, 0x16
je 0x5077b9
cmp eax, 0x22
je 0x5077b9
cmp eax, 0x50
jne 0x50779d
mov eax, dword [edi]
add eax, eax
add dword [ebx], eax
mov dword [edi], esi
jmp 0x5077b0
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.004add8d
lea ecx, [ecx]
mov esi, dword [ebp + 0x50]
add ch, dl
jne 0x50781d
add dl, ch
jne 0x507821
add byte [edi + 0x76], dl
push eax
add dl, al
jbe 0x507829
add byte [edi + 0x76], dl
push eax
add dl, dh
jbe 0x507831
add byte [0x8b005077], al
call dword [ebp - 0x75]
in al, dx
sal byte [eax + ecx*2 - 0x75], 0x45
or byte [esi - 0x75], ah
jge 0x507843
add byte [ecx + 0x7589f845], cl
invalid
ret 0x6630