Function at 0x4fc0b8
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push 0x4044c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x19c
call fcn.004044c0
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x403fe0
push 0x11
push 0x4171a0
lea eax, [ebp - 0x40]
push eax
call fcn.004048da
push 0x11
push 0x4171a0
lea eax, [ebp - 0x64]
push eax
call fcn.004048da
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jg 0x4fc114
jmp 0x4fcaf3
push 2
push 1
call fcn.004046be
push 2
lea eax, [ebp - 0x64]
push eax
push 0x4175d8
call fcn.00404856
push 4
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc149
and dword [ebp - 0xc4], 0
jmp 0x4fc154
call fcn.004046d0
mov dword [ebp - 0xc4], eax
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc170
and dword [ebp - 0xc8], 0
jmp 0x4fc17b
call fcn.004046d0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 3
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc1ad
and dword [ebp - 0xcc], 0
jmp 0x4fc1b8
call fcn.004046d0
mov dword [ebp - 0xcc], eax
push 2
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc1d4
and dword [ebp - 0xd0], 0
jmp 0x4fc1df
call fcn.004046d0
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 2
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc211
and dword [ebp - 0xd4], 0
jmp 0x4fc21c
call fcn.004046d0
mov dword [ebp - 0xd4], eax
push 3
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc238
and dword [ebp - 0xd8], 0
jmp 0x4fc243
call fcn.004046d0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 1
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc275
and dword [ebp - 0xdc], 0
jmp 0x4fc280
call fcn.004046d0
mov dword [ebp - 0xdc], eax
push 4
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc29c
and dword [ebp - 0xe0], 0
jmp 0x4fc2a7
call fcn.004046d0
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
call fcn.00526416
sub ecx, 1
jo 0x4fcb74
call fcn.0040479c
mov word [ebp - 0x20], ax
movsx eax, word [0x521262]
mov dword [ebp - 0x28], eax
movsx eax, word [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
imul ecx, eax
jo 0x4fcb74
mov dword [ebp - 0x28], ecx
movsx eax, word [0x521260]
add eax, dword [ebp - 0x28]
jo 0x4fcb74
add eax, 0x3a
jo 0x4fcb74
mov dword [ebp - 0x28], eax
push 1
push dword [ebp - 0x28]
call fcn.004046be
push 1
lea eax, [ebp - 0x40]
push eax
push 0x4175d8
call fcn.00404724
call fcn.00526416
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fstp qword [ebp - 0xe8]
movsx eax, word [0x52102c]
mov dword [ebp - 0xec], eax
fild dword [ebp - 0xec]
fstp qword [ebp - 0xf4]
fld qword [ebp - 0xe8]
fdiv qword [ebp - 0xf4]
fstp qword [ebp - 0xa4]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
mov dword [ebp - 0xac], 5
lea edx, [ebp - 0xac]
lea ecx, [ebp - 0x78]
call fcn.004048d4
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0040460a
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.004047e4
movsx eax, ax
test eax, eax
je 0x4fc3e8
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0xac], 2
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0040460a
push eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004047d2
mov edx, eax
lea ecx, [ebp - 0x78]
call fcn.004048d4
mov dword [ebp - 0xb0], 0x1000000
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc40e
and dword [ebp - 0xf8], 0
jmp 0x4fc419
call fcn.004046d0
mov dword [ebp - 0xf8], eax
push 4
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0xb8]
push eax
call fcn.0040ad4c
call fcn.00404826
push 2
push dword [0x521034]
call fcn.004046be
push 2
lea eax, [ebp - 0x64]
push eax
push 0x4175d8
call fcn.00404724
mov eax, dword [0x521034]
add eax, 4
jo 0x4fcb74
mov dword [0x521034], eax
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc482
and dword [ebp - 0xfc], 0
jmp 0x4fc48d
call fcn.004046d0
mov dword [ebp - 0xfc], eax
push 4
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0xb8]
push eax
call fcn.0040ad4c
call fcn.00404826
push 4
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc4c3
and dword [ebp - 0x100], 0
jmp 0x4fc4ce
call fcn.004046d0
mov dword [ebp - 0x100], eax
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc4ea
and dword [ebp - 0x104], 0
jmp 0x4fc4f5
call fcn.004046d0
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 3
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc527
and dword [ebp - 0x108], 0
jmp 0x4fc532
call fcn.004046d0
mov dword [ebp - 0x108], eax
push 2
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc54e
and dword [ebp - 0x10c], 0
jmp 0x4fc559
call fcn.004046d0
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 2
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc58b
and dword [ebp - 0x110], 0
jmp 0x4fc596
call fcn.004046d0
mov dword [ebp - 0x110], eax
push 3
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc5b2
and dword [ebp - 0x114], 0
jmp 0x4fc5bd
call fcn.004046d0
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 1
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc5ef
and dword [ebp - 0x118], 0
jmp 0x4fc5fa
call fcn.004046d0
mov dword [ebp - 0x118], eax
push 4
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc616
and dword [ebp - 0x11c], 0
jmp 0x4fc621
call fcn.004046d0
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 2
push dword [0x521034]
call fcn.004046be
push 2
lea eax, [ebp - 0x40]
push eax
push 0x4175d8
call fcn.00404724
mov eax, dword [0x521034]
add eax, 4
jo 0x4fcb74
mov dword [0x521034], eax
mov eax, dword [0x521034]
mov dword [ebp - 0x24], eax
push 1
push dword [ebp - 0x18]
push 1
push 0x11
lea eax, [ebp - 0x1c]
push eax
push 1
push 0x80
call fcn.00404862
add esp, 0x1c
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xac], 0x4008
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.004046a6
lea eax, [ebp - 0x8c]
push eax
call fcn.004048aa
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.004048b6
lea ecx, [ebp - 0x8c]
call fcn.00404844
push 2
push dword [0x521034]
call fcn.004046be
push 2
push dword [ebp + 0x14]
push 0
call fcn.00404556
mov eax, dword [ebp + 0x14]
push dword [eax]
call fcn.004d8bec
mov ecx, dword [0x521034]
add ecx, eax
jo 0x4fcb74
mov dword [0x521034], ecx
mov eax, dword [0x521034]
mov dword [ebp - 0x7c], eax
fild dword [0x521034]
fstp qword [ebp - 0x124]
movsx eax, word [0x52102c]
mov dword [ebp - 0x128], eax
fild dword [ebp - 0x128]
fstp qword [ebp - 0x130]
fld qword [ebp - 0x124]
fdiv qword [ebp - 0x130]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
call fcn.00404742
fstp qword [ebp - 0x138]
fild dword [0x521034]
fstp qword [ebp - 0x140]
movsx eax, word [0x52102c]
mov dword [ebp - 0x144], eax
fild dword [ebp - 0x144]
fstp qword [ebp - 0x14c]
fld qword [ebp - 0x140]
fdiv qword [ebp - 0x14c]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
call fcn.00404652
call fcn.00404742
fcomp qword [ebp - 0x138]
fnstsw ax
sahf
je 0x4fc88e
fild dword [0x521034]
fstp qword [ebp - 0x154]
movsx eax, word [0x52102c]
mov dword [ebp - 0x158], eax
fild dword [ebp - 0x158]
fstp qword [ebp - 0x160]
fld qword [ebp - 0x154]
fdiv qword [ebp - 0x160]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
call fcn.00404652
fadd qword [0x401370]
movsx eax, word [0x52102c]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fstp qword [ebp - 0x16c]
fmul qword [ebp - 0x16c]
fild dword [0x521034]
fstp qword [ebp - 0x174]
fsub qword [ebp - 0x174]
fadd qword [0x401370]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
call fcn.00404622
mov word [ebp - 0x4c], ax
push 1
movsx eax, word [ebp - 0x4c]
push eax
push 1
push 0x11
lea eax, [ebp - 0x1c]
push eax
push 1
push 0x80
call fcn.00404862
add esp, 0x1c
push 2
push dword [0x521034]
call fcn.004046be
push 2
lea eax, [ebp - 0x1c]
push eax
push 0x40b9d8
call fcn.00404724
movsx eax, word [ebp - 0x4c]
mov ecx, dword [0x521034]
add ecx, eax
jo 0x4fcb74
mov dword [0x521034], ecx
fild dword [0x521034]
fstp qword [ebp - 0x17c]
movsx eax, word [0x52102c]
mov dword [ebp - 0x180], eax
fild dword [ebp - 0x180]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x17c]
fdiv qword [ebp - 0x188]
fnstsw ax
test al, 0xd
jne 0x4fcb6f
call fcn.0040481a
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x7c]
je 0x4fc8e8
mov eax, dword [ebp - 0x7c]
add eax, 1
jo 0x4fcb74
mov dword [ebp - 0x7c], eax
cmp word [0x52102c], 1
jne 0x4fc901
mov eax, dword [ebp - 0x7c]
sub eax, 1
jo 0x4fcb74
mov dword [ebp - 0x7c], eax
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc91d
and dword [ebp - 0x18c], 0
jmp 0x4fc928
call fcn.004046d0
mov dword [ebp - 0x18c], eax
push 4
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0xb8]
push eax
call fcn.0040ad4c
call fcn.00404826
push 4
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc95e
and dword [ebp - 0x190], 0
jmp 0x4fc969
call fcn.004046d0
mov dword [ebp - 0x190], eax
push 1
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc985
and dword [ebp - 0x194], 0
jmp 0x4fc990
call fcn.004046d0
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 3
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fc9c2
and dword [ebp - 0x198], 0
jmp 0x4fc9cd
call fcn.004046d0
mov dword [ebp - 0x198], eax
push 2
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fc9e9
and dword [ebp - 0x19c], 0
jmp 0x4fc9f4
call fcn.004046d0
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 2
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fca26
and dword [ebp - 0x1a0], 0
jmp 0x4fca31
call fcn.004046d0
mov dword [ebp - 0x1a0], eax
push 3
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fca4d
and dword [ebp - 0x1a4], 0
jmp 0x4fca58
call fcn.004046d0
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 1
pop eax
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 4
jae 0x4fca8a
and dword [ebp - 0x1a8], 0
jmp 0x4fca95
call fcn.004046d0
mov dword [ebp - 0x1a8], eax
push 4
pop eax
dec eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 4
jae 0x4fcab1
and dword [ebp - 0x1ac], 0
jmp 0x4fcabc
call fcn.004046d0
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xbc]
mov cl, byte [ecx]
mov byte [eax], cl
push 2
push 1
call fcn.004046be
push 2
lea eax, [ebp - 0x40]
push eax
push 0x4175d8
call fcn.00404724
mov eax, dword [ebp - 0x7c]
mov dword [0x521030], eax
wait
push 0x4fcb5e
jmp 0x4fcb14
lea eax, [ebp - 0x1c]
push eax
push 0
call fcn.00404784
lea eax, [ebp - 0x40]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xb0]
push eax
push 0
call fcn.00404784
lea ecx, [ebp - 0x48]
call fcn.00404868
lea eax, [ebp - 0x64]
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xb4]
push eax
push 0
call fcn.00404784
lea ecx, [ebp - 0x78]
call fcn.00404844
ret
jmp fcn.004044cc
call fcn.0040477e