Function at 0x4fcb79
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push 0x4044c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push 0x38
pop eax
call fcn.004044c0
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x14], 0x403ff0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 4], 1
mov dword [ebp - 4], 2
push 0xffffffffffffffff
call fcn.00404754
mov dword [ebp - 4], 3
and dword [ebp - 0x28], 0
mov dword [ebp - 4], 4
mov eax, dword [ebp + 8]
push dword [eax]
push 1
call fcn.00404838
sub eax, 4
jo 0x4fcf3a
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x24], 1
jmp 0x4fcc13
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x30]
jo 0x4fcf3a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x34]
jg 0x4fcce5
mov dword [ebp - 4], 5
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ebx, ebx
cmp ax, 0x85
setne bl
mov eax, dword [ebp - 0x24]
add eax, 1
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ecx, ecx
cmp ax, 3
setne cl
or ebx, ecx
neg ebx
sbb ebx, ebx
neg ebx
mov eax, dword [ebp - 0x24]
add eax, 2
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx eax, byte [eax]
neg eax
sbb eax, eax
neg eax
or ebx, eax
neg ebx
sbb ebx, ebx
neg ebx
mov eax, dword [ebp - 0x24]
add eax, 3
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ecx, ecx
cmp ax, 3
setne cl
or ebx, ecx
test ebx, ebx
jne 0x4fccd9
mov dword [ebp - 4], 6
push 0x4e
pop eax
sub eax, dword [ebp - 0x24]
jo 0x4fcf3a
mov dword [ebp - 0x28], eax
jmp 0x4fcf0b
mov dword [ebp - 4], 9
jmp 0x4fcc04
mov dword [ebp - 4], 0xa
mov eax, dword [ebp + 8]
push dword [eax]
push 1
call fcn.00404838
sub eax, 4
jo 0x4fcf3a
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 1
and dword [ebp - 0x24], 0
jmp 0x4fcd20
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x38]
jo 0x4fcf3a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x3c]
jg 0x4fcdee
mov dword [ebp - 4], 0xb
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ebx, ebx
cmp ax, 3
setne bl
mov eax, dword [ebp - 0x24]
add eax, 1
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx eax, byte [eax]
neg eax
sbb eax, eax
neg eax
or ebx, eax
neg ebx
sbb ebx, ebx
neg ebx
mov eax, dword [ebp - 0x24]
add eax, 2
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ecx, ecx
cmp ax, 3
setne cl
or ebx, ecx
neg ebx
sbb ebx, ebx
neg ebx
mov eax, dword [ebp - 0x24]
add eax, 3
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx eax, byte [eax]
neg eax
sbb eax, eax
neg eax
or ebx, eax
test ebx, ebx
jne 0x4fcde2
mov dword [ebp - 4], 0xc
push 0x4f
pop eax
sub eax, dword [ebp - 0x24]
jo 0x4fcf3a
mov dword [ebp - 0x28], eax
jmp 0x4fcf0b
mov dword [ebp - 4], 0xf
jmp 0x4fcd11
mov dword [ebp - 4], 0x10
mov eax, dword [ebp + 8]
push dword [eax]
push 1
call fcn.00404838
sub eax, 4
jo 0x4fcf3a
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 1
and dword [ebp - 0x24], 0
jmp 0x4fce29
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x40]
jo 0x4fcf3a
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x44]
jg 0x4fcef0
mov dword [ebp - 4], 0x11
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx esi, byte [eax]
neg esi
sbb esi, esi
neg esi
mov eax, dword [ebp - 0x24]
add eax, 1
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ecx, ecx
cmp ax, 3
setne cl
or esi, ecx
neg esi
sbb esi, esi
neg esi
mov eax, dword [ebp - 0x24]
add eax, 2
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx eax, byte [eax]
neg eax
sbb eax, eax
neg eax
or esi, eax
neg esi
sbb esi, esi
neg esi
mov eax, dword [ebp - 0x24]
add eax, 3
jo 0x4fcf3a
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00404832
movzx ax, byte [eax]
xor ecx, ecx
cmp ax, 0x55
setne cl
or esi, ecx
test esi, esi
jne 0x4fcee4
mov dword [ebp - 4], 0x12
push 0x50
pop eax
sub eax, dword [ebp - 0x24]
jo 0x4fcf3a
mov dword [ebp - 0x28], eax
jmp 0x4fcf0b
mov dword [ebp - 4], 0x15
jmp 0x4fce1a
mov dword [ebp - 4], 0x16
and dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0x17
push 0
call fcn.00404754
jmp 0x4fcf26
mov dword [ebp - 4], 0x1a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0x1b
push 0
call fcn.00404754
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 4
call fcn.0040477e