Function at 0x40b400
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
push esi
cmp dword [ebp - 0xa4], 0x17
jg 0x40b433
movzx eax, word [ebp - 0xdc]
movzx ecx, byte [ebp - 7]
add ecx, dword [ebp - 0xa0]
sub ecx, dword [ebp - 0x1bc]
xor eax, ecx
mov word [ebp - 0xb4], ax
mov edx, dword [ebp - 0x1bc]
and edx, 0x59
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x1a4], eax
mov dword [0x42303c], 5
movzx ecx, byte [ebp - 0xc1]
sub ecx, 0x28
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x25c]
add edx, 0x15
and edx, 0x3a
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x238], 0x3a
movzx eax, word [ebp - 0x1dc]
mov dword [ebp - 0xf4], eax
mov ecx, 0x14
sub ecx, dword [ebp - 0x100]
mov dword [ebp - 0x1a4], ecx
movzx edx, byte [ebp - 0x1d0]
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x1d0]
sub ecx, 0x56
mov edx, dword [ebp - 0x268]
sub edx, 0x55
or ecx, edx
mov word [ebp - 0x260], cx
movzx eax, byte [ebp - 0x126]
add eax, 0x8b
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x274]
mov dword [ebp - 0x230], edx
mov eax, dword [ebp - 0x268]
push eax
call fcn.00407c60
add esp, 4
add eax, dword [ebp - 0x114]
add eax, dword [ebp - 0xf4]
movzx ecx, word [ebp - 0xc0]
add eax, ecx
mov word [ebp - 0x1b4], ax
movzx edx, word [ebp - 0x1a0]
mov eax, 0x3e
sub eax, edx
movzx ecx, word [ebp - 0x1a0]
sub eax, ecx
movzx edx, word [ebp - 0x24c]
add edx, eax
mov word [ebp - 0x24c], dx
mov dword [ebp - 0x274], 0x54
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x104]
mov edx, dword [ebp - 0xf4]
sub edx, ecx
add edx, 0x14
movzx eax, byte [ebp - 0xc1]
sub edx, eax
add edx, 0x2b
mov byte [ebp - 0x1e], dl
movzx ecx, byte [ebp - 0x91]
mov edx, dword [ebp - 0xf4]
sub edx, ecx
movzx eax, word [ebp - 0xfc]
sub eax, edx
mov word [ebp - 0xfc], ax
movzx ecx, byte [ebp - 6]
sub ecx, 0x3a
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp - 0x1c8]
add edx, 0x5a
and edx, dword [ebp - 0x114]
mov dword [ebp - 0xec], edx
movzx eax, byte [ebp - 5]
add eax, 0x27
xor eax, dword [ebp - 0x1c0]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x120]
add ecx, 0x63
and ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x26c], ecx
movzx edx, word [ebp - 0x108]
mov eax, 0x49
sub eax, edx
sub eax, 0xa
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00407e40
add esp, 4
mov edx, dword [0x423048]
add edx, 0x44
mov dword [0x423048], edx
movzx eax, byte [ebp - 0x125]
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
mov dword [0x42302c], eax
movzx edx, word [ebp - 0x19c]
movzx eax, word [ebp - 0x1a0]
sub edx, eax
sub edx, 0x5c
mov byte [ebp - 6], dl
mov byte [0x423030], 0x5e
mov dword [ebp - 0x218], 0x3b
movzx ecx, word [ebp - 0x18]
mov edx, 0x56
sub edx, ecx
sub edx, dword [ebp - 0x268]
sub edx, 0x43
movzx eax, byte [ebp - 0x10a]
sub edx, eax
mov byte [ebp - 6], dl
movzx ecx, word [ebp - 0x260]
add ecx, 0x30
mov byte [ebp - 0xe5], cl
movzx edx, byte [ebp - 6]
mov dword [ebp - 0x268], edx
movzx eax, word [ebp - 0x260]
or eax, 0x4f
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0xc], 0
mov ecx, dword [ebp - 0xac]
add ecx, 0xc
sub ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [ebp - 0x1bc]
and edx, 0xc
xor edx, dword [ebp - 0x1bc]
mov word [ebp - 0xe4], dx
mov dword [ebp - 0xa0], 0x59
movzx eax, byte [ebp - 0xed]
mov ecx, dword [ebp - 0x110]
sub ecx, eax
mov edx, dword [ebp - 0x1c0]
lea eax, [ecx + edx - 0x25]
or eax, dword [ebp - 0x1a4]
mov byte [ebp - 0x10a], al
movzx ecx, word [ebp - 0x162]
mov dword [ebp - 0x1a4], ecx
mov dword [ebp - 0x16c], 0x44
movzx edx, byte [ebp - 0x1c9]
mov eax, 0x4e
sub eax, edx
or eax, dword [ebp - 0xa0]
or eax, 0x3b
mov word [ebp - 0x260], ax
mov dword [ebp - 0x1a8], 0
mov ecx, dword [ebp - 0x1bc]
add ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x1d4]
add edx, 0x36
or ecx, edx
mov word [ebp - 0xe0], cx
movzx eax, word [ebp - 0x1b4]
mov ecx, dword [ebp - 0x9c]
lea edx, [eax + ecx + 0x3d]
movzx eax, word [ebp - 0x1dc]
or edx, eax
mov word [ebp - 0xe0], dx
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x30], 0x14
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x278], 0
jmp 0x40b7b8
mov edx, dword [ebp - 0x278]
add edx, 1
mov dword [ebp - 0x278], edx
cmp dword [ebp - 0x278], 6
jge 0x40b84c
movzx eax, word [ebp - 0xe4]
and eax, 0x35
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x208], 0x3a
mov ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x114], ecx
mov edx, 0x8b
sub edx, dword [ebp - 0x268]
add edx, 0x6b
mov byte [ebp - 6], dl
movzx eax, byte [ebp - 0x125]
add eax, 0xa
and eax, 0x2d
mov word [ebp - 0x1b4], ax
mov ecx, dword [0x42303c]
sub ecx, 0x52
mov dword [0x42303c], ecx
lea edx, [ebp - 0x1bc]
sub edx, 0x28
movzx eax, byte [edx]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x134], 1
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x274], ecx
jmp 0x40b7a9
mov byte [ebp - 0x1d0], 0x32
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x1d0]
sub eax, dword [ebp - 0xa4]
sub eax, 0x5f
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xc]
shl ecx, 2
push ecx
mov edx, dword [ebp - 0x1a8]
push edx
call fcn.0041255b
add esp, 8
mov dword [ebp - 0x1d8], eax
mov esi, dword [ebp - 0x100]
add esi, dword [ebp - 0xf4]
push 0x21
push 0x1c
call dword [sym.imp.GDI32.dll_SelectClipPath]
add esi, eax
sub esi, dword [ebp - 0x114]
mov word [ebp - 0xdc], si
mov eax, dword [ebp - 0x120]
add eax, 0x43
movzx ecx, word [ebp - 0x104]
or eax, ecx
mov dword [ebp - 0x120], eax
movzx edx, byte [ebp - 0x126]
mov eax, dword [ebp - 0xa4]
lea ecx, [eax + edx - 0x42]
mov word [ebp - 0x1b4], cx
movzx edx, word [ebp - 0x5f]
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x14c], 0x3d
mov eax, dword [ebp - 0x268]
add eax, 0x37
movzx ecx, word [ebp - 0x1a0]
sub eax, ecx
and eax, dword [ebp - 0x26c]
mov word [ebp - 0x124], ax
mov dx, word [str.__IPQ_SE__n_]
mov word [0x423030], dx
mov eax, dword [0x42302c]
mov dword [ebp - 0x22c], eax
mov dword [0x423024], 0x52
pop esi
mov esp, ebp
pop ebp
ret