Function at 0x100447e0
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100648a0
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x10075604]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x68], ebx
cmp dword [ebx + 0xf4], 0
push 0
jl 0x10044de5
lea eax, [ebp - 0x43]
mov word [ebp - 0x44], 0x63
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x43], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10002800
mov edi, dword [ebx + 0xf4]
mov eax, 0xc22e4507
imul edi
sub esp, 8
mov dword [ebp - 4], 0
add edx, edi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
call fcn.1005e9a1
mov esi, eax
mov edx, edi
imul ecx, esi, 0x15180
mov eax, 0x91a2b3c5
sub esp, 8
mov dword [ebp - 0x38], esi
sub edx, ecx
mov ecx, 0x18
mul edx
shr edx, 0xb
mov eax, edx
xor edx, edx
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x100659d0]
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
call fcn.1005e9a1
mov ebx, eax
lea ecx, [esi + esi*2]
mov edx, edi
mov dword [ebp - 0x4c], ebx
mov eax, 0x88888889
sub esp, 8
lea esi, [ebx + ecx*8]
imul ecx, esi, 0xe10
sub edx, ecx
mov ecx, 0x3c
mul edx
shr edx, 5
mov eax, edx
xor edx, edx
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x100659d0]
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
add esp, 8
call fcn.1005e9a1
mov ecx, esi
sub esp, 8
shl ecx, 4
sub ecx, esi
mov esi, eax
lea ecx, [esi + ecx*4]
mov edx, ecx
shl edx, 4
sub edx, ecx
mov ecx, 0x3c
shl edx, 2
sub edi, edx
xor edx, edx
mov eax, edi
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x100659d0]
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
call fcn.1005e9a1
mov edx, dword [ebp - 0x38]
mov edi, eax
test edx, edx
je 0x10044a5b
cmp edx, 0xa
jae 0x100449d3
mov al, 0x6a
mov byte [ebp - 0x2a], 0
mov cl, 0x5a
mov byte [ebp - 0x2c], al
xor cl, al
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], cl
lea eax, [ebp - 0x2b]
jmp 0x100449e0
mov word [ebp - 0x38], 0xa
lea eax, [ebp - 0x37]
mov byte [ebp - 0x37], 0
push edx
push eax
mov ch, 1
mov byte [ebp - 0x2e], 0
mov al, 0x24
mov byte [ebp - 0x34], ch
mov dl, al
mov byte [ebp - 0x2e], 0
mov ah, 0x3b
xor al, ch
xor ah, ch
mov byte [ebp - 0x33], al
mov cl, 0x72
mov byte [ebp - 0x2f], ah
sub esp, 0x18
lea eax, [ebp - 0x33]
xor cl, ch
mov bl, 0x74
xor dl, ch
mov byte [ebp - 0x32], cl
xor bl, ch
mov byte [ebp - 0x31], dl
mov ecx, esp
mov byte [ebp - 0x30], bl
push eax
call fcn.100017e0
lea eax, [ebp - 0x64]
push eax
call fcn.10031980
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.1000a560
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x10044a58
inc eax
push 1
push eax
push dword [ebp - 0x64]
call fcn.10002610
add esp, 0xc
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
je 0x10044b08
cmp ebx, 0xa
jae 0x10044a81
mov cl, 0x36
mov byte [ebp - 0x2a], 0
mov al, 6
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10044a8e
mov word [ebp - 0x38], 0x23
lea eax, [ebp - 0x37]
mov byte [ebp - 0x37], 0
push ebx
push eax
mov ch, 0x3e
mov byte [ebp - 0x2e], 0
mov al, 0x1b
mov byte [ebp - 0x34], ch
mov dl, al
mov byte [ebp - 0x2e], 0
mov ah, 4
xor al, ch
xor ah, ch
mov byte [ebp - 0x33], al
mov cl, 0x4d
mov byte [ebp - 0x2f], ah
sub esp, 0x18
lea eax, [ebp - 0x33]
xor cl, ch
mov bl, 0x4b
xor dl, ch
mov byte [ebp - 0x32], cl
xor bl, ch
mov byte [ebp - 0x31], dl
mov ecx, esp
mov byte [ebp - 0x30], bl
push eax
call fcn.100017e0
lea eax, [ebp - 0x64]
push eax
call fcn.10031980
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.1000a560
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x10044b4e
inc eax
push 1
push eax
push dword [ebp - 0x64]
call fcn.10002610
add esp, 0xc
jmp 0x10044b4e
mov bl, 0x35
mov byte [ebp - 0x3c], 0
mov dl, 5
mov byte [ebp - 0x40], bl
mov al, dl
mov byte [ebp - 0x3c], 0
mov cl, 0xf
xor dl, bl
xor al, bl
mov byte [ebp - 0x3f], dl
xor cl, bl
mov byte [ebp - 0x3e], al
mov byte [ebp - 0x3d], cl
test dl, dl
jne 0x10044b32
xor ecx, ecx
jmp 0x10044b41
lea ecx, [ebp - 0x3f]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10044b38
sub ecx, edx
push ecx
lea eax, [ebp - 0x3f]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000a650
test esi, esi
je 0x10044bfb
cmp esi, 0xa
jae 0x10044b74
mov cl, 0x4e
mov byte [ebp - 0x2a], 0
mov al, 0x7e
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10044b81
mov word [ebp - 0x38], 0xd
lea eax, [ebp - 0x37]
mov byte [ebp - 0x37], 0
push esi
push eax
mov ch, 0x11
mov byte [ebp - 0x2e], 0
mov al, 0x34
mov byte [ebp - 0x34], ch
mov dl, al
mov byte [ebp - 0x2e], 0
mov ah, 0x2b
xor al, ch
xor ah, ch
mov byte [ebp - 0x33], al
mov cl, 0x62
mov byte [ebp - 0x2f], ah
sub esp, 0x18
lea eax, [ebp - 0x33]
xor cl, ch
mov bl, 0x64
xor dl, ch
mov byte [ebp - 0x32], cl
xor bl, ch
mov byte [ebp - 0x31], dl
mov ecx, esp
mov byte [ebp - 0x30], bl
push eax
call fcn.100017e0
lea eax, [ebp - 0x64]
push eax
call fcn.10031980
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.1000a560
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x10044c46
inc eax
push 1
push eax
push dword [ebp - 0x64]
call fcn.10002610
add esp, 0xc
jmp 0x10044c46
mov bl, 0x60
mov byte [ebp - 0x3c], 0
mov dl, 0x50
mov byte [ebp - 0x40], bl
mov al, dl
mov byte [ebp - 0x3c], 0
mov cl, 0x5a
xor dl, bl
xor al, bl
mov byte [ebp - 0x3f], dl
xor cl, bl
mov byte [ebp - 0x3e], al
mov byte [ebp - 0x3d], cl
test dl, dl
jne 0x10044c25
xor ecx, ecx
jmp 0x10044c39
lea ecx, [ebp - 0x3f]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10044c30
sub ecx, edx
push ecx
lea eax, [ebp - 0x3f]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000a650
test edi, edi
je 0x10044cec
cmp edi, 0xa
jae 0x10044c6c
mov cl, 0x54
mov byte [ebp - 0x2a], 0
mov al, 0x64
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10044c79
mov word [ebp - 0x38], 0x50
lea eax, [ebp - 0x37]
mov byte [ebp - 0x37], 0
push edi
push eax
mov ah, 0x36
mov byte [ebp - 0x47], 0
mov al, 0x13
mov byte [ebp - 0x4c], ah
mov dl, al
mov byte [ebp - 0x47], 0
mov cl, 0x45
xor al, ah
xor cl, ah
mov byte [ebp - 0x4b], al
sub esp, 0x18
mov byte [ebp - 0x4a], cl
mov bl, 0x43
xor dl, ah
xor bl, ah
mov byte [ebp - 0x49], dl
lea eax, [ebp - 0x4b]
mov byte [ebp - 0x48], bl
mov ecx, esp
push eax
call fcn.100017e0
lea eax, [ebp - 0x64]
push eax
call fcn.10031980
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.1000a560
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x10044d2b
inc eax
push 1
push eax
push dword [ebp - 0x64]
call fcn.10002610
add esp, 0xc
jmp 0x10044d2b
mov dl, 0x48
mov byte [ebp - 0x29], 0
mov cl, 0x78
mov byte [ebp - 0x2c], dl
mov al, cl
mov byte [ebp - 0x29], 0
xor cl, dl
xor al, dl
mov byte [ebp - 0x2b], cl
mov byte [ebp - 0x2a], al
test cl, cl
jne 0x10044d0f
xor ecx, ecx
jmp 0x10044d1e
lea ecx, [ebp - 0x2b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10044d15
sub ecx, edx
push ecx
lea eax, [ebp - 0x2b]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000a650
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
mov dl, 0x68
mov byte [ebp - 0x29], 0
cmovae eax, dword [ebp - 0x28]
mov cl, 0x1b
push eax
mov byte [ebp - 0x2c], dl
mov al, 0x4d
xor al, dl
mov byte [ebp - 0x29], 0
xor cl, dl
mov byte [ebp - 0x2b], al
sub esp, 0x18
mov byte [ebp - 0x2a], cl
mov edx, esp
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
cmp dword [edx + 0x14], 0x10
jb 0x10044d6f
mov eax, dword [edx]
jmp 0x10044d71
mov eax, edx
mov byte [eax], 0
cmp byte [ebp - 0x2b], 0
jne 0x10044d7e
xor ecx, ecx
jmp 0x10044d8d
lea ecx, [ebp - 0x2b]
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10044d84
sub ecx, esi
push ecx
lea eax, [ebp - 0x2b]
mov ecx, edx
push eax
call fcn.10002800
lea eax, [ebp - 0x64]
push eax
call fcn.10031980
push eax
mov eax, dword [ebp - 0x68]
mov byte [ebp - 4], 5
push dword [eax + 0x48]
call fcn.10013630
mov eax, dword [ebp - 0x50]
add esp, 0x28
cmp eax, 0x10
jb 0x10044dcc
push 1
inc eax
push eax
push dword [ebp - 0x64]
call fcn.10002610
add esp, 0xc
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x10044df6
push 1
inc eax
push eax
push dword [ebp - 0x28]
call fcn.10002610
add esp, 0xc
jmp 0x10044df6
push dword [ebx]
mov byte [ebx + 0xa0], 0
call fcn.10012b10
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005e77e
mov esp, ebp
pop ebp
ret