Function at 0x1802801
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
xchg ah, al
ror cl, 1
neg eax
xor cl, 2
dec eax
rol eax, 0xa6
xor bl, cl
xor eax, eax
not al
adc ecx, esp
mov word [ecx + eax*2 - 0x1fe], dx
lea ebp, [ebp + eax*4 - 0x400]
movzx ecx, al
push ecx
movsx edx, cl
mov ecx, dword [ebp + eax - 0xff]
sub ax, 0xe9a2
xor dword [esp + eax*2 - 0x2eba], eax
setg byte [esp + eax*2 - 0x2eba]
xor ecx, ebx
sar dl, 0xe7
xor ecx, edx
not word [esp + eax*2 - 0x2eb8]
inc edx
inc word [esp + eax - 0x175b]
neg ecx
shl dl, 0x82
cmovp ax, word [esp + eax - 0x175d]
not ax
inc ecx
ror ecx, 3
call fcn.0177d691
mov ax, word [edx + eax*2 - 0x5c69b14a]
movzx edx, cl
lea esi, [esi + edx*2 - 0x160]
mov word [esi + edx - 0xaf], ax
not cl
mov edx, dword [ebp + edx - 0xaf]
movzx eax, cl
lea ebp, [ebp + eax*8 - 0x27c]
sal ax, 0xac
jns 0x17f66cb
push eax
jmp 0x17f6657
imul ecx
mov dword [esi], edx
mov ecx, 0xd19b8115
jmp fcn.01844f18
shr ecx, 0xe4
lea edx, [edx + ecx*4 - 0x3f1632c6]
rol eax, cl
and ecx, 0x1b8a8031
xor ebx, edx
rol eax, 0x3e
adc ebp, edx
add cl, al
inc al
lea esi, [ecx + esi - 0x8200ef]
dec eax
xor eax, 0xde170728
movzx ecx, byte [esi + eax - 0x146ca0e6]
call fcn.01789379
or al, 0x12
xor ebx, ecx
xchg word [esp + eax - 0x54102ed6], dx
inc dword [esp + eax - 0x54102ed3]
add dx, word [esp + eax - 0x54102ed3]
adc edi, ecx
movsx ecx, dx
call fcn.018435a6
xadd dword [esp + eax*8 - 8], eax
not edx
sbb cl, ch
jno 0x18590a1
mov edx, 0x60094823
lea ebp, [edx + ebp - 0x60094827]
mov edx, dword [ebp + edx - 0x60094823]
mov eax, 0x3b8d763e
xor edx, ebx
call fcn.01845fe5
ror word [esp], 4
sub eax, ecx
push 0xa31254be
mov esp, eax
call fcn.017f40ea
jmp 0x17eeadd
jnp 0x17fde0f
sal eax, 0x37
lea edx, [eax + eax*2 + 0x488ef736]
xor ecx, ebx
call fcn.0184e224
add cx, dx
mov word [edi], cx
xor eax, eax
call fcn.017aa1cd
mov ecx, 0xfa26008e
movsx eax, cx
mov eax, dword [edi + eax*4 - 0x234]
dec ecx
call fcn.0180ea1c
add edi, 6
push 0x380c8f96
shld eax, edx, cl
shl dword [esp], 0xf7
mov dword [edi], eax
pop eax
sub esi, 4
neg ax
movsx ecx, al
mov edx, dword [esi + ecx]
dec eax
not ecx
cmovne ecx, eax
xor edx, ebx
shl ecx, 0xed
setp al
or ecx, ecx
xor edx, 0xea3e9831
ror edx, 1
xor ecx, 0x299b5331
bswap edx
sbb edx, 0x4f2e69b1
dec cx
or eax, ecx
not edx
xor cl, ah
jne 0x1818fae
xor edx, ebx
bswap edx
add edx, eax
ror ecx, 0x25
push ecx
neg edx
dec ecx
jno 0x17a6bf6
push eax
pop eax
xor edx, ebx
sal word [esp + 2], 0xa1
lea ecx, [eax + eax + 0x7ebf3c9e]
xadd ax, cx
neg edx
pop eax
call fcn.0186a74b
mov edx, dword [ebp]
mov eax, 0xcc08c6a6
shl al, 0xe4
mov cx, word [ebp + 4]
call fcn.017a20bf
lea edi, [edi + edx*8 - 0xc]
mov ecx, dword [edi + edx*4 - 4]
lea eax, [edx + edx*4 + 0x4e012e94]
xor ecx, ebx
sal dx, 0x2c
adc edx, eax
lea edx, [edx + eax*4 - 0x3b551d53]
bswap ecx
rol ecx, 1
dec edx
lea ecx, [edx + ecx + 0x696c3de1]
add dl, 0x3f
rol al, 0xe2
not ecx
dec edx
dec al
xor ebx, ecx
add esi, ecx
push edx
shl ax, 3
mov dword [esp + edx - 0x4ab0dbe7], esi
ret
mov ecx, dword [ebp]
mov al, byte [ebp + 4]
mov edx, 0xc6bf2fbb
add ebp, 6
and dx, dx
shr edx, 0xff
mov byte es:[edx + ecx - 1], al
jb 0x17ed752
call fcn.017f36db
sub edi, 4
mov edx, 0xcd9035a8
mov ecx, dword [edi]
lea eax, [edx + edx + 0x1d39b3a1]
not eax
bswap edx
xor ecx, ebx
rol ecx, 2
xor ecx, 0x7eb8019b
inc ecx
rol ecx, 1
neg ecx
call fcn.017a2ee3
mov ecx, 0x5436e138
mov eax, 0x14ab4699
mov ecx, dword [esi + eax*2 - 0x29568d32]
jmp 0x182f009
add edi, edx
pop eax
jmp edi
shl cx, 0x65
xor edx, ebx
sar eax, 0x17
lea edx, [edx + eax*2 - 0x2cb75998]
xor ax, cx
ror edx, 2
xor edx, 0xccbfa8a9
push ecx
not edx
shl ecx, 0x9e
xor eax, ecx
js 0x177e0b7
xor ebx, edx
neg dword [esp + ecx*2]
add edi, edx
movzx edx, ax
pop ecx
jmp fcn.0181f83c
pop edx
pop edx
pop eax
pop edx
jnp fcn.0182cfef
call int.00ada9a0
not al
lea esi, [esi + eax - 0x338c307c]
lea ecx, [eax + eax*8 + 0x2491c113]
mov edx, dword [esi + eax*2 - 0x671860f0]
xor eax, eax
inc eax
jnp 0x17d1f14
mov edx, 0xe3bda29b
shr dx, 0xab
sbb edi, 4
push edx
xchg byte [esp + 3], dl
mov eax, dword [edi]
not word [esp + 1]
dec edx
xor eax, ebx
movsx ecx, byte [esp]
ror eax, 2
and word [esp + ecx - 0x13], cx
xchg ch, dl
shl ecx, cl
lea eax, [eax + ecx*4 + 0x699dd38]
xchg dword [esp + ecx - 0x21400000], edx
push edx
not eax
call fcn.01802097
mov eax, 0x4a1bd618
movsx ecx, al
mov ecx, dword [esi + ecx - 0x18]
mov eax, dword [eax + esi - 0x4a1bd614]
jmp 0x179e6e7
xor eax, eax
xor bx, dx
sar cx, 0xcf
neg cl
lea ebp, [ebp + eax*8 - 2]
mov word [ebp + eax*4], dx
pop ecx
jae fcn.017c92a6
mov ecx, 0xeb166524
mov ecx, dword [esi]
mov eax, 0x263b93b1
and ax, 0x8f38
lea esi, [esi + eax - 0x263b832c]
inc ax
sbb eax, eax
xor ecx, ebx
sar eax, 0x16
dec eax
xor ecx, eax
inc eax
sub ecx, 0xecabd52a
or ax, ax
movsx edx, ax
ror ecx, 2
jmp 0x180aea9
inc ecx
xor ebx, ecx
and eax, 0xb89d1f01
add eax, 0xb521932f
jp 0x17b0f08
adc edi, ecx
movsx ecx, dx
lea edx, [ecx*4 + 0x2aa7eb14]
mov eax, dword [ebp + ecx*2]
dec dl
call fcn.0177cf83
mov eax, 0x752912b8
not al
mov eax, dword [esi + eax - 0x75291243]
mov ecx, 0x8004618a
jmp 0x1843142
bswap edx
sbb edx, 0xe130ceb7
call fcn.017b468c
jne 0x178a711
call fcn.01820f46
inc cl
xor ebx, edx
call fcn.0183ad76
lea edx, [eax*4 + 0x461db824]
lea esi, [eax + esi - 0x14ab4695]
shl edx, 0xe7
ror edx, 0xd
xor ecx, ebx
not ax
lea ecx, [ecx + eax - 0x72d1f8a0]
sal eax, 0xdc
neg ecx
inc ecx
add dx, 0x5e92
dec dx
push eax
not ecx
xor ebx, ecx
lea eax, [eax + edx*2 + 0x1d8307a9]
shr ax, 0xaa
add ebp, ecx
mov dx, word [edi + edx*2 - 0x400713b6]
call fcn.017c1126
lea edi, [ecx + edi - 0xc80d]
js 0x182b7a1
lea ecx, [ecx + ecx*4 + 0x1517ff80]
adc ecx, dword [esp + ecx*2 - 0x2a37cfaa]
adc eax, edx
mov dword [edi + ecx*2 - 0x2a395fcc], eax
mov byte [esp + ecx - 0x151cafe0], cl
call fcn.01783adb
movsx ecx, ax
shl cx, cl
mov edx, dword [esi]
xor edx, ebx
xor ecx, eax
dec eax
shr cx, 0x62
neg edx
dec edx
neg al
not edx
jp 0x179eaf3
ror dl, 1
add dl, 0x2c
xor dl, 0xbb
ror al, 0xc1
xor bl, dl
lea ecx, [eax + eax*4 + 0x479ebf94]
inc ax
not ax
add edx, esp
neg ecx
jle 0x1826f0c
mov ecx, 0x709387a7
mov cx, word [edi + ecx - 0x709387a7]
mov eax, 0xa9014401
movzx edx, al
mov dx, word [edi + edx*4 - 2]
inc eax
add edi, 2
lea eax, [eax + eax*4 + 0x409c059d]
dec eax
jp 0x17caf90
push edx
pushfd
mov edx, 0x2c287204
not dx
test dx, dx
call fcn.01783b14
mov cl, byte [ebp + 2]
mov eax, 0xfdb3f19e
add ebp, 2
push eax
lea eax, [eax + eax*8 - 0x40ca8c52]
inc word [esp + 1]
add dl, cl
mov word [ebp], dx
mov edx, dword [esi]
or dword [esp], eax
adc esi, 4
jmp 0x17dbcc6
shl cl, 0x43
mov ecx, dword [esi + 8]
push 0x8d8fb0ad
adc esi, 4
call fcn.01864bdd
add ebp, 6
shrd edx, eax, cl
mov eax, dword [esp + 4]
add eax, 0xfff85835
jmp eax
pop eax
xor edx, 0x852c5115
inc edx
shl ecx, cl
xor ebx, edx
shl cl, 0x27
lea eax, [eax*2 - 0xd65aedb]
jne 0x1800ee0
adc ebp, edx
ror ax, 0x21
sal cl, 0xc6
mov ecx, dword [edi]
call fcn.01841a70
push esi
mov esi, 0xc33deab3
call fcn.017c7caf