Function at 0x41b5fd
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
push ebx
push esi
push edi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [0x44a480]
mov esi, eax
xor esi, 0x6b4ac145
mov dword [ebp - 0xc], 0x15
push 5
xor ebx, ebx
mov dword [ebp - 8], 0x55
pop edx
mov dword [ebp - 4], 0xffffffb1
mov ecx, ebx
add edx, dword [ebp + ecx*4 - 0xc]
inc ecx
cmp ecx, 3
jl 0x41b638
push 0x3e
mov dword [ebp - 0x30], edx
add eax, 0x6437acf5
pop edx
mov dword [ebp - 0xc], 0x47
mov ecx, ebx
mov dword [ebp - 8], 0x1e
mov dword [ebp - 4], 0xffffff6d
add edx, dword [ebp + ecx*4 - 0xc]
inc ecx
cmp ecx, 3
jl 0x41b664
push 0x37
mov dword [ebp - 0x40], edx
mov ecx, ebx
pop edx
mov dword [ebp - 8], 0x3c
mov dword [ebp - 4], 0xffffff90
add edx, dword [ebp + ecx*4 - 8]
inc ecx
cmp ecx, 2
jl 0x41b684
mov dword [ebp - 0x44], edx
mov edi, ebx
imul edx, esi, 0xabd340a7
sub esi, 0x61b75474
push 0x52
pop ecx
mov dword [ebp - 0x38], esi
mov esi, ecx
mov dword [ebp - 0x1c], 0x60
mov dword [ebp - 0x18], 0x49
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], 0xffffff1f
mov dword [ebp - 0x28], edx
mov ecx, ebx
inc ecx
cmp ecx, 0x8d0
jg 0x41b6db
cmp byte [ecx + 0x4025d0], bl
jne 0x41b6c8
jmp 0x41b6e5
call fcn.0041af0e
mov edx, dword [ebp - 0x28]
mov eax, edx
sub eax, 0x1ad26a81
add esi, dword [ebp + edi*4 - 0x1c]
add edx, 0x152bba15
inc edi
mov dword [ebp - 0x28], edx
cmp edi, 4
jl 0x41b6c6
push 0x47
mov dword [ebp - 0x34], esi
mov eax, ebx
mov esi, dword [ebp - 0x38]
pop ecx
mov dword [ebp - 0xc], 0x1a
mov dword [ebp - 8], 0x31
mov dword [ebp - 4], 0xffffff7e
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x41b71d
push 0x72
mov dword [ebp - 0x4c], ecx
mov edx, 0x786
mov eax, 0x4025d0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1894
ja 0x41b74b
movsx ecx, byte [eax]
test ecx, ecx
jne 0x41b737
jmp 0x41b750
call fcn.0041af0e
push ecx
push esi
mov ecx, esi
call fcn.0041aeb2
pop ecx
pop ecx
push 0x24
pop eax
mov edi, esi
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x1c], 0x2b
mov dword [ebp - 0x18], 0x20
mov eax, ebx
mov dword [ebp - 0x10], 0xffffffb2
xor edi, 0x610ae4fe
sub ecx, dword [ebp + eax*4 - 0x1c]
inc eax
cmp eax, 4
jl 0x41b782
mov dword [ebp - 0x1c], 0x51
xorps xmm2, xmm2
mov dword [ebp - 0x18], 0x3e
mov dword [ebp - 0x14], 0x50
mov dword [ebp - 0x10], 0xffffff0e
movups xmm1, xmmword [ebp - 0x1c]
push 0x1b
mov dword [ebp - 0x48], ecx
movaps xmm0, xmm1
mov dword [ebp - 8], 0x62
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 4], 0xffffff86
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x16
mov dword [ebp - 0x50], eax
mov eax, ebx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x41b7e7
push 0x2d
pop edx
mov dword [ebp - 0x58], ecx
mov eax, ebx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0xc], 0x4f
mov dword [ebp - 8], 0x58
mov dword [ebp - 4], 0xffffff4c
mov cl, byte [0x44a4b8]
inc eax
mov dword [ebp - 0x28], 0x44a4b8
mov byte [ebp - 0x21], cl
cmp eax, 0x186a
jg 0x41b83e
cmp byte [eax + 0x4025d0], bl
jne 0x41b811
cmp eax, 0x339
jle 0x41b8ca
jmp 0x41b844
imul esi, edi, 0x954e2c1f
push ecx
push esi
mov ecx, esi
call fcn.0041aeb2
movzx eax, byte [ebp - 0x21]
mov edx, 0x19c9
pop ecx
pop ecx
mov ecx, 0x44a4b8
jmp 0x41b86d
add edx, eax
inc ecx
cmp edx, 0x1e93
ja 0x41b873
movzx eax, byte [ecx]
test eax, eax
jne 0x41b85f
jmp 0x41b879
and edi, 0x7ce08e5c
sub edi, 0x3cbfb208
imul esi, edi, 0x5757d4f6
call fcn.0041af0e
push 0x72
mov eax, 0x17dd
mov ecx, 0x4025d0
pop edx
add eax, edx
inc ecx
cmp eax, 0x23c1
ja 0x41b8aa
movsx edx, byte [ecx]
test edx, edx
jne 0x41b897
jmp 0x41b8b5
call fcn.0041af0e
lea esi, [edi + 0x38d6ba9b]
mov edx, dword [ebp - 0x38]
or esi, 0x79dce9a5
imul esi, esi, 0x558217f1
sub esi, 0x8855809
push 3
lea edi, [esi + 0x572f0f12]
mov eax, ebx
pop esi
add edx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, esi
jl 0x41b8d5
push 0x1a
mov dword [ebp - 0x38], edx
mov eax, ebx
mov dword [ebp - 0xc], 0x27
mov dword [ebp - 8], 0x38
mov dword [ebp - 4], 0xffffffb9
pop ecx
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, esi
jl 0x41b8fb
push 0x11
pop eax
mov dword [ebp - 0x1c], eax
movaps xmm1, xmm2
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 0x1b
mov dword [ebp - 0x10], 0xffffff69
movups xmm0, xmmword [ebp - 0x1c]
push 0x39
mov dword [ebp - 0x54], ecx
paddd xmm1, xmm0
mov dword [ebp - 0xc], 0x43
movaps xmm0, xmm1
mov dword [ebp - 8], 7
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 4], 0xffffff9d
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x5d
mov dword [ebp - 0x68], eax
mov eax, ebx
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, esi
jl 0x41b965
push 0x12
mov dword [ebp - 0x60], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x20], 0x48
mov dword [ebp - 0x1c], 0x3d
mov dword [ebp - 0x18], 0x53
mov dword [ebp - 0x14], 0x24
mov dword [ebp - 0x10], 0xffffff14
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, 5
jl 0x41b999
push 0x1f
pop eax
mov dword [ebp - 0x64], ecx
mov ecx, eax
mov dword [ebp - 8], eax
mov eax, ebx
mov dword [ebp - 4], 0xffffffd2
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x41b9b7
push 0x18
mov dword [ebp - 0x5c], ecx
lea edx, [edi - 0x69730444]
pop ecx
mov dword [ebp - 0x20], 0x56
mov eax, ebx
mov dword [ebp - 0x1c], 0x11
mov dword [ebp - 0x18], 0x16
mov dword [ebp - 0x14], 0x61
mov dword [ebp - 0x10], 0xffffff37
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, 5
jl 0x41b9f2
mov dword [ebp - 0xb0], ecx
mov eax, ebx
mov ecx, 0x100
mov dword [ebp - 0xc], 0x31
mov dword [ebp - 8], 0xa
mov dword [ebp - 4], 0xa5
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, esi
jl 0x41ba1e
mov dword [ebp - 0x1c], 0x45
movaps xmm1, xmm2
mov dword [ebp - 0x18], 0x18
mov esi, 0x160
mov dword [ebp - 0x14], 0x59
mov dword [ebp - 0x10], 0xffffff31
movups xmm0, xmmword [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x63
mov dword [ebp - 0x18], 0x43
paddd xmm1, xmm0
mov dword [ebp - 0x14], 0x36
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0xfffffeee
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xac], ecx
movups xmm0, xmm1
mov dword [ebp - 0xc], 0x52
psrldq xmm0, 4
mov ecx, ebx
paddd xmm1, xmm0
mov dword [ebp - 8], 0x1f
movups xmm0, xmmword [ebp - 0x1c]
mov dword [ebp - 4], 0xcf
movd eax, xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0x1c
paddd xmm1, xmm0
mov dword [ebp - 0x80], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x56
mov dword [ebp - 0x7c], eax
mov eax, ebx
cmp byte [0x44a440], al
je 0x41bafd
inc eax
cmp eax, 0x97b
jg 0x41baf7
cmp byte [eax + 0x44a440], bl
jne 0x41bae5
jmp 0x41bafd
sub edx, 0x292ec30d
or edx, 0x3cf6e17
sub esi, dword [ebp + ecx*4 - 0xc]
or edi, 0x12abade8
inc ecx
cmp ecx, 3
jl 0x41badb
mov al, byte [ebp - 0x21]
mov dword [ebp - 0x74], esi
jmp 0x41bb2a
sub al, 0x30
cmp al, 9
ja 0x41bb30
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
mov al, byte [eax]
test al, al
jne 0x41bb1b
jmp 0x41bb36
lea edi, [edx + 0x7c343841]
push ecx
lea esi, [edi - 0x4f009fb9]
mov ecx, edi
push esi
mov dword [0x44a478], esi
call fcn.0041aeb2
pop ecx
pop ecx
push 0x23
pop edx
push 0x1c
pop ecx
push 3
mov dword [ebp - 0xc], edx
mov eax, ebx
mov dword [ebp - 8], 0x19
mov dword [ebp - 4], 0xffffffde
pop edi
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, edi
jl 0x41bb69
mov dword [ebp - 0x1c], 5
movaps xmm1, xmm2
mov dword [ebp - 0x18], 0x3a
mov dword [ebp - 0x14], 0x21
mov dword [ebp - 0x10], 0x60
movups xmm0, xmmword [ebp - 0x1c]
push 0x10
mov dword [ebp - 0x78], ecx
psubd xmm1, xmm0
mov dword [ebp - 0x20], 0x2b
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 0x13
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 0x52
movups xmm0, xmm1
mov dword [ebp - 0x14], edx
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0xffffff5b
movd eax, xmm1
pop ecx
add eax, 0xe0
mov dword [ebp - 0x6c], eax
mov eax, ebx
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, 5
jl 0x41bbe4
mov edx, 0xffffff47
mov dword [ebp - 0x1c], 0x32
mov dword [ebp - 0x18], 0x5a
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], edx
movups xmm1, xmmword [ebp - 0x1c]
mov dword [ebp - 0x70], ecx
mov ecx, ebx
mov dword [ebp - 0xc], 0x4e
paddd xmm1, xmm2
mov dword [ebp - 8], 0x5c
movaps xmm0, xmm1
mov dword [ebp - 4], 0xffffff56
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x28
mov dword [ebp - 0x84], eax
mov eax, ebx
sub eax, dword [ebp + ecx*4 - 0xc]
inc ecx
cmp ecx, edi
jl 0x41bc54
push 0x38
mov dword [ebp - 0x88], eax
mov eax, ebx
mov dword [ebp - 0xc], 0x56
mov dword [ebp - 8], 0x2b
mov dword [ebp - 4], edx
pop ecx
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, edi
jl 0x41bc79
mov dword [ebp - 0x1c], 0x2f
movaps xmm1, xmm2
mov dword [ebp - 0x18], 0x4e
mov dword [ebp - 0x14], 0x56
mov dword [ebp - 0x10], 0x6d
movups xmm0, xmmword [ebp - 0x1c]
push 0xffffffffffffffb7
pop edx
psubd xmm1, xmm0
mov dword [ebp - 0x94], ecx
movaps xmm0, xmm1
mov dword [ebp - 8], edi
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 4], edx
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x47
pop ecx
add eax, 0x160
mov dword [ebp - 0x8c], eax
mov eax, ebx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x41bce4
push 8
mov dword [ebp - 0x90], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 8], 0x41
mov dword [ebp - 4], edx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x41bd03
mov dword [ebp - 0xa0], ecx
mov eax, ebx
mov ecx, 0x80
mov dword [ebp - 0xc], 0x2a
mov dword [ebp - 8], 0x43
mov dword [ebp - 4], edi
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, edi
jl 0x41bd2b
mov dword [ebp - 0x9c], ecx
mov eax, ebx
xor ecx, ecx
mov dword [ebp - 8], 0x56
inc ecx
mov dword [ebp - 4], 0xffffffaa
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x41bd4d
mov eax, ebx
mov dword [ebp - 0x98], ecx
cmp byte [0x44a440], al
je 0x41bd85
inc eax
cmp eax, 0x1773
jg 0x41bd79
cmp byte [eax + 0x44a440], bl
jne 0x41bd67
jmp 0x41bd85
add esi, 0x3415a428
mov dword [0x44a478], esi
mov eax, esi
and eax, 0x426bd44d
push ecx
xor eax, 0x9cf0ee26
mov ecx, esi
push esi
mov dword [0x44a480], eax
call fcn.0041aeb2
mov dword [ebp - 0x1c], 0x26
mov dword [ebp - 0x18], 0x40
mov dword [ebp - 0x14], 0x61
mov dword [ebp - 0x10], 0xfffffef0
movups xmm1, xmmword [ebp - 0x1c]
pop ecx
pop ecx
paddd xmm1, xmm2
mov dword [ebp - 0x20], 0x20
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 0x22
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 0x2d
movups xmm0, xmm1
mov dword [ebp - 0x14], 0x16
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0xffffff9f
movd eax, xmm1
push 0x27
pop ecx
add eax, 0x49
mov dword [ebp - 4], eax
mov eax, ebx
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, 5
jl 0x41be0f
push 0x33
mov dword [ebp - 0xa8], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x18], 0xc
mov dword [ebp - 0x14], 0x24
mov dword [ebp - 0x10], 0xffffff9e
add ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, edi
jl 0x41be39
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x30]
call fcn.0041b02a
mov ecx, dword [ebp - 0x40]
mov esi, eax
mov dword [ebp - 0x30], esi
call fcn.0041b02a
mov ecx, dword [ebp - 0x44]
mov edi, eax
call fcn.0041b02a
mov dword [ebp - 0x28], eax
test esi, esi
je 0x41bfcb
test edi, edi
je 0x41bfcb
test eax, eax
je 0x41bfcb
mov eax, dword [0x44a480]
mov edx, dword [ebp - 0x3c]
and eax, 0xac8a2a57
mov ecx, dword [ebp - 0x2c]
push edi
push esi
push dword [ebp + 8]
mov dword [0x44a478], eax
call fcn.0040aa1a
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.0040b677
push dword [ebp - 0x50]
mov esi, eax
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x28]
add eax, esi
add eax, dword [ebp - 0x4c]
push dword [ebp - 0x2c]
add dword [ebp - 0x34], eax
call fcn.004341ae
mov eax, dword [ebp - 0x38]
cdq
idiv dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
push ecx
call fcn.004341ae
mov eax, dword [ebp - 0x60]
cdq
idiv dword [ebp - 0x64]
push dword [ebp - 0x5c]
add eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x2c]
push edi
push eax
call fcn.004341ae
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0x2c]
push esi
push dword [ebp - 0x3c]
push ecx
call fcn.004341ae
mov eax, dword [ebp - 0x6c]
add esp, 0x40
cdq
idiv dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x74]
cdq
idiv dword [ebp - 0x78]
add eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x7c]
add eax, esi
mov esi, dword [ebp - 0x2c]
add eax, dword [ebp - 0x80]
add eax, esi
push eax
call fcn.004341ae
mov eax, dword [ebp - 0x84]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
add eax, ecx
mov byte [eax + esi], bl
mov eax, dword [ebp - 0x88]
jmp 0x41bf5c
cmp byte [eax + esi], 0x3d
jne 0x41bf5b
mov byte [eax + esi], 0x5f
inc eax
cmp eax, ecx
jb 0x41bf51
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x30]
push eax
push dword [ebp - 0x94]
push ebx
call fcn.0043423a
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x9c]
push eax
push dword [ebp - 0xa0]
push edi
call fcn.0043423a
mov eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x28]
push eax
push dword [ebp - 4]
push esi
call fcn.0043423a
add esp, 0x24
mov ecx, ebx
call fcn.0041d467
mov ecx, edi
call fcn.0041d467
mov ecx, esi
call fcn.0041d467
mov eax, dword [ebp - 0x34]
jmp 0x41c006
push 9
pop esi
mov dword [ebp - 0x18], 0x42
mov dword [ebp - 0x14], 0x44
mov dword [ebp - 0x10], 0xffffff71
add esi, dword [ebp + ebx*4 - 0x18]
inc ebx
cmp ebx, 3
jl 0x41bfe3
mov ecx, dword [ebp - 0x30]
call fcn.0041d467
mov ecx, edi
call fcn.0041d467
mov ecx, dword [ebp - 0x28]
call fcn.0041d467
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret