Function at 0x40fcb0
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x2200
call fcn.00445c00
mov esi, esp
mov dword [esi + 0x21e8], ebp
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x21ec], esp
mov dword [esi + 0x21f8], 0xffffffff
mov dword [esi + 0x21f4], 0x4143e0
mov ecx, dword fs:[0]
mov dword [esi + 0x21f0], ecx
lea ecx, [esi + 0x21f0]
mov dword fs:[0], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 0x9c], ecx
mov eax, dword [eax + 8]
mov dword [esi + 0x98], eax
mov eax, dword [edx + 0x90]
mov dword [esi + 0xcc], eax
lea eax, [edx + 0xac]
mov dword [esi + 0x94], eax
mov dword [esi + 0x78], 0
jmp 0x40fd49
cmp bl, 0x12
jne 0x411189
mov edx, dword [esi + 0x78]
cmp edx, dword [esi + 0xcc]
jae 0x41101f
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x90]
cmp eax, edx
jbe 0x41127a
mov eax, dword [ebx + 0xa4]
mov dword [esi + 0xa4], eax
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x90], eax
mov edi, dword [ebx + 0x8c]
lea ecx, [edx + edx*8]
lea eax, [edi + ecx*8]
mov dword [esi + 0x30], eax
mov eax, dword [edi + ecx*8 + 0x38]
cmp eax, dword [edi + ecx*8 + 0x3c]
mov dword [esi + 0x38], ecx
jbe 0x40fe40
mov eax, ecx
mov ecx, dword [edi + ecx*8 + 0x10]
cmp ecx, 0x21
jb 0x410110
mov dword [esi + 0x68], ecx
lea eax, [esi + 0x68]
mov dword [esi + 0x100], eax
mov dword [esi + 0x104], fcn.00445850
mov dword [esi + str.Too_many_coders:], 0x4573d0
mov dword [esi + 0x3c4], 1
mov dword [esi + 0x3d0], 0
lea eax, [esi + 0x100]
mov dword [esi + 0x3c8], eax
mov dword [esi + 0x3cc], 1
mov dword [esi + 0x21f8], 0xffffffff
lea eax, [esi + 0x3c0]
push eax
lea eax, [esi + 0x180]
push eax
call fcn.004415b0
add esp, 8
mov ecx, dword [esi + 0x180]
mov edx, dword [esi + 0x184]
mov edi, dword [esi + 0x188]
mov bl, 0x10
cmp bl, 0x12
je 0x4106a0
jmp 0x411156
mov dword [esi + 0x34], edi
mov eax, dword [ebx + 0x18]
cmp eax, edx
jbe 0x4112cc
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x24]
mov edi, dword [ecx + edx*4]
mov dword [esi + 0x21f8], 0xffffffff
cmp edi, eax
jae 0x4112e2
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x68]
add ecx, dword [eax + edi*8]
mov edx, dword [ebx + 0x6c]
adc edx, dword [eax + edi*8 + 4]
add ecx, 0x20
adc edx, 0
mov dword [esi + 0x3cc], edx
mov dword [esi + 0x3c8], ecx
mov dword [esi + 0x3c4], 0
mov dword [esi + 0x3c0], 0
lea eax, [esi + 0x3c0]
push eax
push dword [esi + 0x94]
lea eax, [esi + 0x180]
push eax
call fcn.0042c990
add esp, 0xc
cmp dword [esi + 0x180], 0
jne 0x411137
mov eax, dword [ebx + 0x78]
cmp edi, eax
jae 0x4112ee
mov eax, dword [ebx + 0x74]
mov edi, dword [eax + edi*8]
movzx eax, byte [0x4679f9]
push 4
push 8
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x4113b8
mov ecx, eax
mov eax, dword [esi + 0x94]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov dword [esi + 8], ecx
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], 0x4572a0
mov byte [esi + 7], 1
mov dword [esi + 0x21f8], 0xc
push dword [esi + 0x30]
lea eax, [esi + 0xa8]
push eax
call fcn.0041ffa0
add esp, 8
movsd xmm0, qword [esi + 0xb8]
movsd qword [esi + 0x190], xmm0
movdqu xmm0, xmmword [esi + 0xa8]
movdqa xmmword [esi + 0x180], xmm0
mov dword [esi + 0xc], 0x4572a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + 7], 1
mov dword [esi + 0x21f8], 0xc
lea eax, [esi + 0x180]
push eax
call fcn.00420010
add esp, 4
test edx, edx
je 0x41020d
mov ecx, dword [edx]
xor ecx, 1
or ecx, dword [edx + 4]
mov edi, dword [esi + 0x30]
jne 0x4101b0
mov ecx, dword [edx + 8]
xor ecx, 1
or ecx, dword [edx + 0xc]
jne 0x4101b0
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x100], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x104], ecx
mov byte [esi + 0x2f], 1
mov dword [esi + 0x21f8], 0xd
push eax
push edi
call fcn.0041ff70
add esp, 8
mov byte [esi + 0x2f], 0
push 0x3fffff
push dword [esi + 0x90]
push dword [esi + 0xa4]
push dword [esi + 0x14]
push eax
push dword [esi + 0xc]
push dword [esi + 8]
lea eax, [esi + 0x3c0]
push eax
call fcn.0041c940
add esp, 0x20
mov edi, dword [esi + 0x3c0]
movzx ebx, byte [esi + 0x3c4]
mov bh, byte [esi + 0x3c5]
movzx eax, word [esi + 0x3c6]
mov word [esi + 0x24], ax
mov ecx, dword [esi + 0x3c8]
mov edx, dword [esi + 0x3cc]
mov eax, dword [esi + 0x3d0]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x3d8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x3d4]
cmp edi, 6
je 0x410303
push 0xef4
mov dword [esi + 8], eax
lea eax, [esi + 0x3dc]
push eax
lea eax, [esi + 0x12ec]
push eax
mov dword [esi + 0x14], edx
mov dword [esi + 0x28], ecx
call fcn.00446820
add esp, 0xc
mov dword [esi + 0x12d0], edi
mov byte [esi + 0x12d4], bl
mov byte [esi + 0x12d5], bh
movzx eax, word [esi + 0x24]
mov word [esi + 0x12d6], ax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x12d8], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x12dc], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x12e0], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x12e8], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x12e4], eax
movzx eax, byte [0x4679f9]
push 0x10
push 0xf10
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x41137f
mov edi, eax
push 0xf10
lea eax, [esi + 0x12d0]
push eax
push edi
call fcn.00446820
add esp, 0xc
mov dword [esi + 8], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x6c], 0x4571c8
mov dword [esi + 0xc], 0x4571c8
jmp 0x40ff60
mov dword [esi + 0x34], edi
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x18]
mov edi, dword [esi + 0x78]
cmp eax, edi
jbe 0x411310
mov dword [esi + 0x40], ecx
mov ecx, dword [edx + 0x14]
mov eax, dword [edx + 0x24]
mov ebx, dword [ecx + edi*4]
mov ecx, dword [edx + 0x6c]
mov edi, dword [edx + 0x68]
add edi, 0x20
mov dword [esi + 0xdc], edi
adc ecx, 0
mov dword [esi + 0x44], ecx
mov ecx, eax
sub ecx, ebx
mov dword [esi + 0x28], ecx
jb 0x4113d0
mov dword [esi + 0x48], ebx
lea eax, [ebx*8]
add eax, dword [edx + 0x20]
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov edi, dword [ecx + eax*8 + 0x28]
test edi, edi
mov dword [esi + 0x18], edi
je 0x410326
cmp edi, 0x3ffffff
ja 0x4113c1
shl edi, 5
js 0x4113c1
movzx eax, byte [0x4679f9]
push 8
push edi
call fcn.0041f3c0
add esp, 8
test eax, eax
jne 0x41032b
jmp 0x4113e6
mov dword [esi + 0x21f8], 0x12
push dword [esi + 8]
mov eax, dword [esi + 0xc]
call dword [eax]
add esp, 4
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 4]
mov byte [esi + 0x1c], 0x10
mov ecx, 0x80000000
mov edx, str.Multi_input_output_stream_coders_are_not_yet_supported
mov edi, 0x36
test eax, eax
je 0x4101fb
push dword [ebx + 8]
push eax
push dword [esi + 8]
call fcn.0041f3d0
mov ecx, 0x80000000
mov edx, str.Multi_input_output_stream_coders_are_not_yet_supported
add esp, 0xc
movzx ebx, byte [esi + 0x1c]
cmp bl, 0x12
je 0x4106a0
jmp 0x411156
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
cmp byte [ecx + eax*8 + 0x44], 0
mov eax, dword [esi + 0x30]
je 0x410691
mov ecx, dword [esi + 8]
mov dword [esi + 0x100], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x104], ecx
mov byte [esi + 0x23], 1
mov dword [esi + 0x21f8], 0xf
push eax
call fcn.0041ff10
add esp, 4
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x180], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x184], eax
mov dword [esi + 0x21f8], 0x10
push 0x4573f0
call fcn.004238c0
add esp, 4
mov ecx, dword [esi + 8]
mov dword [esi + 0x3c0], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x3c4], ecx
mov dword [esi + 0x3c8], eax
mov dword [esi + 0x3cc], edx
mov eax, dword [esi + 0x24]
mov dword [esi + 0x3d0], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3d4], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x3d8], eax
mov dword [esi + 0x3dc], 0
movzx eax, byte [0x4679f9]
push 8
push 0x20
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x4113f8
movdqu xmm0, xmmword [esi + 0x3c0]
movups xmm1, xmmword [esi + 0x3d0]
movups xmmword [eax + 0x10], xmm1
movdqu xmmword [eax], xmm0
mov edx, 0x4570c8
jmp 0x410697
mov byte [esi + 0x1c], bl
mov byte [esi + 0x2d], bh
movzx edi, word [esi + 0x24]
mov word [esi + 0x4e], di
mov edi, dword [esi + 0xc]
movzx ebx, byte [esi + 0x1c]
cmp bl, 0x12
je 0x4106a0
jmp 0x411156
mov eax, 8
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
lea ecx, [edx + ecx*8]
add ecx, 8
mov dword [esi + 0xa0], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x74]
mov dword [esi + 0xc], ecx
mov eax, dword [eax + 0x78]
mov dword [esi + 0x1c], eax
xor eax, eax
xor ebx, ebx
jmp 0x4103a4
mov eax, dword [esi + 0x64]
mov ebx, dword [esi + 0xd4]
mov edi, dword [esi + 0xd0]
shl eax, 5
mov ecx, dword [esi + 0x60]
mov dword [ecx + eax + 4], ebx
mov edx, dword [esi + 0x14]
mov dword [ecx + eax], edx
mov dword [ecx + eax + 0xc], edi
mov edi, dword [esi + 0x24]
mov dword [ecx + eax + 8], edi
mov dword [ecx + eax + 0x14], ebx
mov dword [ecx + eax + 0x10], edx
mov edx, dword [esi + 0x94]
mov dword [ecx + eax + 0x18], edx
mov ebx, dword [esi + 8]
inc ebx
mov eax, dword [esi + 0x64]
inc eax
mov dword [esi + 0x64], eax
cmp ebx, dword [esi + 0x18]
jae 0x410430
cmp ebx, dword [esi + 0x28]
jae 0x41121b
mov ecx, dword [esi + 0x48]
lea edx, [ebx + ecx]
cmp edx, dword [esi + 0x1c]
jae 0x41123b
mov ecx, dword [esi + 0xd8]
mov edi, dword [ecx + ebx*8]
add edi, dword [esi + 0xdc]
mov dword [esi + 8], ebx
mov ebx, dword [ecx + ebx*8 + 4]
adc ebx, dword [esi + 0x44]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + edx*8]
mov dword [esi + 0x14], edi
add ecx, edi
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0xc]
mov edi, dword [ecx + edx*8 + 4]
adc edi, ebx
cmp eax, dword [esi + 0x5c]
jne 0x41036f
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], ebx
mov dword [esi + 0x21f8], 0
push eax
lea eax, [esi + 0x5c]
push eax
call fcn.00414b40
add esp, 8
jmp 0x410360
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x170], xmm0
movdqa xmmword [esi + 0x160], xmm0
movdqa xmmword [esi + 0x150], xmm0
movdqa xmmword [esi + 0x140], xmm0
movdqa xmmword [esi + 0x130], xmm0
movdqa xmmword [esi + 0x120], xmm0
movdqa xmmword [esi + 0x110], xmm0
movdqa xmmword [esi + 0x100], xmm0
cmp dword [esi + 0x40], 0
je 0x41050d
mov eax, dword [esi + 0xa0]
mov eax, dword [eax + 4]
xor ecx, ecx
mov edx, 0
cmp dword [esi + 0x40], 4
jb 0x4104d7
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
xor ecx, ecx
mov ebx, eax
xor edx, edx
mov dword [esi + edx*4 + 0x100], ecx
add ecx, dword [ebx]
mov dword [esi + edx*4 + 0x104], ecx
add ecx, dword [ebx + 0x30]
mov dword [esi + edx*4 + 0x108], ecx
add ecx, dword [ebx + 0x60]
mov dword [esi + edx*4 + 0x10c], ecx
add edx, 4
add ecx, dword [ebx + 0x90]
add ebx, 0xc0
cmp edi, edx
jne 0x4104a0
mov edi, dword [esi + 0x40]
and edi, 3
je 0x41050d
lea ebx, [edx + edx*2]
shl ebx, 4
add eax, ebx
lea edx, [esi + edx*4]
add edx, 0x100
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [edx + ebx*4], ecx
add ecx, dword [eax]
inc ebx
add eax, 0x30
cmp edi, ebx
jne 0x410500
pxor xmm0, xmm0
movdqa xmmword [esi + 0x3d0], xmm0
movdqa xmmword [esi + 0x3c0], xmm0
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + eax*8 + 0x1c]
test eax, eax
mov ebx, dword [esi + 0x40]
je 0x41056c
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov ecx, dword [edx + ecx*8 + 0x18]
shl eax, 4
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [ecx + edx + 8]
cmp edi, 0x20
jae 0x41125b
mov byte [esi + edi + 0x3c0], 1
add edx, 0x10
cmp eax, edx
jne 0x410550
mov eax, ebx
neg eax
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [eax + ecx]
cmp edx, 0xffffffff
je 0x410599
lea edx, [ecx + 1]
cmp byte [esi + ecx + 0x3c1], 0
mov ecx, edx
jne 0x410580
jmp 0x41059b
xor edx, edx
mov dword [esi + 0x21f8], 0
cmp edx, ebx
jae 0x411326
mov dword [esi + 0x14], edx
lea ecx, [edx + edx*2]
shl ecx, 4
mov eax, dword [esi + 0xa0]
add ecx, dword [eax + 4]
mov dword [esi + 8], ecx
push ecx
call fcn.0041ffd0
add esp, 4
mov dword [esi + 0xec], eax
mov dword [esi + 0xf0], edx
cmp edx, 4
jne 0x4105e8
cmp dword [eax], 0x1b010303
je 0x410bd1
lea eax, [esi + 0xec]
mov dword [esi + 0x180], eax
mov dword [esi + 0x184], 0x419b20
mov dword [esi + str.Unsupported_method:__sE], 0x457374
mov dword [esi + 0x3c4], 1
mov dword [esi + 0x3d0], 0
lea eax, [esi + 0x180]
mov dword [esi + 0x3c8], eax
mov dword [esi + 0x3cc], 1
lea eax, [esi + 0x3c0]
push eax
lea eax, [esi + 0xf4]
push eax
call fcn.004415b0
add esp, 8
mov ecx, dword [esi + 0xf4]
mov edx, dword [esi + 0xf8]
mov bl, 0x10
mov edi, dword [esi + 0xfc]
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x410684
shl eax, 5
push 8
push eax
push dword [esi + 0x60]
mov dword [esi + 0xc], edi
mov dword [esi + 0x14], edx
mov edi, ecx
call fcn.0041f3d0
mov ecx, edi
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
add esp, 0xc
mov eax, dword [esi + 8]
cmp bl, 0x12
je 0x4106a0
jmp 0x411156
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x30]
mov edx, dword [esi + 0x78]
cmp edx, eax
jae 0x411290
mov eax, dword [ecx + 0x90]
cmp edx, eax
jae 0x4112ae
mov eax, dword [ecx + 0x8c]
mov edi, dword [esi + 0x38]
mov edi, dword [eax + edi*8 + 0x40]
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + edx*4]
inc edx
mov dword [esi + 0x78], edx
mov dword [esi + 0xc], eax
add edi, eax
mov dword [esi + 0x24], edi
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 0x24]
jae 0x410a60
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x9c]
cmp edx, eax
jae 0x4111db
mov edi, dword [ecx + 0x98]
imul ebx, edx, 0x58
inc edx
mov dword [esi + 0xc], edx
lea eax, [edi + ebx]
mov dword [esi + 8], eax
cmp byte [edi + ebx + 0x4c], 0
je 0x4108f0
mov ecx, dword [edi + ebx + 0x28]
mov eax, dword [edi + ebx + 0x2c]
mov dword [esi + 0x14], ecx
or eax, ecx
je 0x4108f0
movzx eax, byte [0x4679f9]
push 4
push 8
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x411364
mov ecx, eax
lea eax, [esi + 0xa8]
mov dword [ecx], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 4], eax
mov dword [esi + 0x100], ecx
mov dword [esi + 0x104], 0x45709c
cmp byte [edi + ebx + 0x53], 0
je 0x41084e
mov eax, dword [edi + ebx + 0x18]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x28], edi
mov dword [esi + 0x44], ebx
mov eax, dword [edi + ebx + 0x1c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x3c0], ecx
mov dword [esi + 0x3c4], 0x45709c
mov dword [esi + 0x21f8], 0x16
push 0x4573f0
call fcn.004238c0
add esp, 4
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x12d0], ecx
mov dword [esi + 0x12d4], 0x45709c
mov dword [esi + 0x12d8], eax
mov dword [esi + 0x12dc], edx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x12e0], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x12e4], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x12e8], eax
mov dword [esi + 0x12ec], 0
movzx eax, byte [0x4679f9]
push 8
push 0x20
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x41139d
movdqu xmm0, xmmword [esi + 0x12d0]
movups xmm1, xmmword [esi + 0x12e0]
movups xmmword [eax + 0x10], xmm1
movdqu xmmword [eax], xmm0
mov dword [esi + 0x100], eax
mov dword [esi + fcn.00409e50], 0x4570c8
mov edi, dword [esi + 0x28]
mov ebx, dword [esi + 0x44]
mov eax, dword [edi + ebx + 0x44]
mov ecx, dword [edi + ebx + 0x48]
mov byte [esi + 0x13], 1
mov dword [esi + 0x21f8], 0x14
push ecx
push eax
push dword [esi + 0x98]
push dword [esi + 0x9c]
lea eax, [esi + 0x12d0]
push eax
call fcn.00431150
add esp, 0x14
mov dword [esi + 0x21f8], 0x17
lea eax, [esi + 0x12d0]
push eax
push 0x4570f4
lea eax, [esi + 0x100]
push eax
push dword [esi + 8]
lea eax, [esi + 0x180]
push eax
call fcn.0041f4f0
add esp, 0x14
mov eax, dword [esi + 0x12d0]
test eax, eax
je 0x4108cb
push 1
push eax
push dword [esi + 0x12d4]
call fcn.0041f3d0
add esp, 0xc
cmp byte [esi + 0x180], 0x12
jne 0x4109a1
movzx ecx, byte [esi + 0x181]
jmp 0x410a08
mov dword [esi + 0x180], str._registry_srcindex.crates.io_1cd66030c949c28d_sevenz_rust_0.6.1_src_reader.rs
mov dword [esi + 0x184], 0
mov eax, dword [edi + ebx + 0x44]
mov ecx, dword [edi + ebx + 0x48]
mov dword [esi + 0x21f8], 0x13
push ecx
push eax
push dword [esi + 0x98]
push dword [esi + 0x9c]
lea eax, [esi + 0x3c0]
push eax
call fcn.00431150
add esp, 0x14
mov dword [esi + 0x21f8], 0x1a
lea eax, [esi + 0x3c0]
push eax
push 0x457070
lea eax, [esi + 0x180]
push eax
push dword [esi + 8]
lea eax, [esi + 0x12d0]
push eax
call fcn.0041f4f0
add esp, 0x14
mov eax, dword [esi + 0x3c0]
test eax, eax
je 0x41097d
push 1
push eax
push dword [esi + 0x3c4]
call fcn.0041f3d0
add esp, 0xc
movzx ecx, byte [esi + 0x12d0]
movzx edx, byte [esi + 0x12d1]
cmp cl, 0x12
jne 0x410aa4
test dl, dl
jne 0x4106f0
jmp 0x410aea
xor eax, eax
cmp dword [esi + 0x90], 0
setne al
movsd xmm0, qword [esi + 0x190]
movsd qword [esi + 0x12e0], xmm0
movdqu xmm0, xmmword [esi + 0x180]
movdqa xmmword [esi + 0x12d0], xmm0
mov byte [esi + 0x13], 1
mov dword [esi + 0x21f8], 0x14
push eax
lea eax, [esi + 0x12d0]
push eax
lea eax, [esi + 0x3c0]
push eax
call fcn.004217b0
add esp, 0xc
movzx eax, byte [esi + 0x3c0]
movzx ecx, byte [esi + 0x3c1]
cmp al, 0x12
jne 0x410b04
test cl, 1
je 0x410af7
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x104]
mov dword [esi + 0x21f8], 0x19
mov dword [esi + 0x14], eax
push eax
mov dword [esi + 8], ecx
call dword [ecx]
add esp, 4
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4106f0
push dword [ecx + 8]
push eax
push dword [esi + 0x14]
call fcn.0041f3d0
add esp, 0xc
jmp 0x4106f0
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
mov dword [esi + 0x21f8], 0x1b
mov dword [esi + 8], eax
push eax
mov dword [esi + 0xc], ecx
call dword [ecx]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x40fd49
push dword [ecx + 8]
push eax
push dword [esi + 8]
call fcn.0041f3d0
add esp, 0xc
jmp 0x40fd49
movzx eax, word [esi + 0x12d2]
mov word [esi + 0x3e], ax
mov eax, dword [esi + 0x12d4]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x12d8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x12dc]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x12e4]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x12e0]
mov dword [esi + 0x7c], eax
jmp 0x410aec
xor edx, edx
mov dword [esi + 0x14], edx
mov byte [esi + 0x1c], cl
jmp 0x410b89
mov byte [esi + 0x1c], 0x12
mov dword [esi + 0x14], 0
jmp 0x410b4e
mov dword [esi + 0x14], ecx
mov byte [esi + 0x1c], al
movzx eax, word [esi + 0x3c2]
mov word [esi + 0x3e], ax
mov eax, dword [esi + 0x3c4]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x3c8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x3cc]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x3d4]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x3d0]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x104]
mov dword [esi + 0x21f8], 0x18
mov dword [esi + 8], eax
push eax
mov dword [esi + 0xc], ecx
call dword [ecx]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x410b89
push dword [ecx + 8]
push eax
push dword [esi + 8]
call fcn.0041f3d0
add esp, 0xc
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
mov dword [esi + 0x21f8], 0x1c
mov dword [esi + 8], eax
push eax
mov dword [esi + 0xc], ecx
call dword [ecx]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
movzx ebx, byte [esi + 0x1c]
je 0x40fd40
push dword [ecx + 8]
push eax
push dword [esi + 8]
call fcn.0041f3d0
add esp, 0xc
jmp 0x40fd40
mov eax, dword [esi + 8]
mov ebx, dword [eax]
test ebx, ebx
je 0x410c10
cmp ebx, 0xfffffff
ja 0x411410
lea edi, [ebx*8]
test edi, edi
js 0x411417
movzx eax, byte [0x4679f9]
push 4
push edi
call fcn.0041f3c0
add esp, 8
test eax, eax
jne 0x410c15
jmp 0x41141e
mov eax, 4
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], 0
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax*4 + 0x100]
add ebx, eax
mov dword [esi + 0x14], ebx
jmp 0x410c5d
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x54]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esi + 8]
inc eax
inc dword [esi + 0x58]
mov ebx, dword [esi + 0x14]
cmp eax, ebx
mov dword [esi + 8], eax
jae 0x410cf6
mov ebx, eax
mov eax, dword [esi + 0x60]
mov edi, dword [esi + 0x64]
mov dword [esi + 0x21f8], 1
lea ecx, [esi + 0x3c0]
mov edx, dword [esi + 0x30]
push ebx
push dword [esi + 0x90]
push dword [esi + 0xa4]
lea ebx, [esi + 0x100]
push ebx
push edi
push eax
call fcn.0040f890
add esp, 0x18
movzx eax, byte [esi + 0x3c0]
cmp al, 0x12
jne 0x410f36
mov edx, dword [esi + 0x3c4]
mov edi, dword [esi + 0x3c8]
mov dword [esi + 0x3c0], edx
mov dword [esi + 0x3c4], edi
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x50]
jne 0x410c49
mov dword [esi + 0x18], edi
mov dword [esi + 0x24], edx
mov dword [esi + 0x21f8], 2
push eax
lea eax, [esi + 0x50]
push eax
call fcn.004148b0
add esp, 8
jmp 0x410c40
mov eax, dword [esi + 0x58]
mov dword [esi + 0xc8], eax
movq xmm0, qword [esi + 0x50]
movq qword [esi + 0xc0], xmm0
mov byte [esi + 0x21], 1
mov dword [esi + 0x21f8], 3
push dword [esi + 0x30]
call fcn.0041ff10
add esp, 4
mov dword [esi + 0x24], eax
mov dword [esi + 0x18], edx
mov byte [esi + 0x2e], 1
mov dword [esi + 0x21f8], 4
lea eax, [esi + 0xe0]
push eax
call fcn.00421720
add esp, 4
mov eax, dword [esi + 0xc8]
mov dword [esi + 0x70], eax
movq xmm0, qword [esi + 0xc0]
movq qword [esi + 0x68], xmm0
mov dword [esi + 0x21f8], 5
lea eax, [esi + 0x180]
push eax
call fcn.004200c0
add esp, 4
mov eax, dword [esi + 0xe8]
lea ecx, [esi + 0x3dc]
mov dword [ecx + 0x244], eax
movsd xmm0, qword [esi + 0xe0]
movsd qword [ecx + 0x23c], xmm0
mov eax, dword [esi + 0x70]
mov dword [ecx + 0x250], eax
movsd xmm0, qword [esi + 0x68]
movsd qword [ecx + 0x248], xmm0
push 0x21c
lea eax, [esi + 0x1a0]
push eax
lea eax, [esi + 0x3f8]
push eax
call fcn.00446820
add esp, 0xc
xorps xmm0, xmm0
movups xmmword [esi + 0x3c0], xmm0
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3d4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x3d0], eax
movdqa xmm0, xmmword [0x456fc0]
movdqu xmmword [esi + 0x3d8], xmm0
movdqu xmmword [esi + 0x3e8], xmm0
mov dword [esi + 0x614], 0x1010101
movzx eax, byte [0x4679f9]
push 8
push 0x270
call fcn.0041f3c0
add esp, 8
test eax, eax
mov edi, dword [esi + 0x30]
je 0x41142b
mov ebx, eax
push 0x270
lea eax, [esi + 0x3c0]
push eax
push ebx
call fcn.00446820
add esp, 0xc
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
cmp byte [ecx + eax*8 + 0x44], 0
je 0x410fc6
mov dword [esi + 0x28], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], 0x457324
mov byte [esi + 0x22], 1
mov dword [esi + 0x21f8], 6
push edi
call fcn.0041ff10
add esp, 4
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x180], eax
mov dword [esi + fcn.004138f0], 0x457324
mov dword [esi + 0x21f8], 7
push 0x4573f0
call fcn.004238c0
add esp, 4
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x3c0], ecx
mov dword [esi + fcn.004138f0], 0x457324
mov dword [esi + 0x3c8], eax
mov dword [esi + 0x3cc], edx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3d0], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3d4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x3d8], eax
mov dword [esi + 0x3dc], 0
movzx eax, byte [0x4679f9]
push 8
push 0x20
call fcn.0041f3c0
add esp, 8
test eax, eax
mov edi, dword [esi + 0x48]
mov ecx, dword [esi + 0x1c]
je 0x411446
movdqu xmm0, xmmword [esi + 0x3c0]
movups xmm1, xmmword [esi + 0x3d0]
movups xmmword [eax + 0x10], xmm1
movdqu xmmword [eax], xmm0
mov edx, 0x4570c8
jmp 0x410fd3
mov byte [esi + 0x1c], al
movzx eax, byte [esi + 0x3c1]
mov byte [esi + 0x2d], al
movzx eax, word [esi + 0x3c2]
mov word [esi + 0x4e], ax
mov eax, dword [esi + 0x3c4]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x3c8]
mov dword [esi + 0x14], eax
mov dword [esi + 0x21f8], 0xb
mov eax, dword [esi + 0x3cc]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x3d4]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x3d0]
mov dword [esi + 8], eax
lea eax, [esi + 0x50]
push eax
call fcn.00415170
add esp, 4
mov eax, dword [esi + 0x50]
test eax, eax
je 0x410fa9
shl eax, 3
push 4
push eax
push dword [esi + 0x54]
call fcn.0041f3d0
add esp, 0xc
movzx ebx, byte [esi + 0x1c]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x5c]
test eax, eax
jne 0x410663
jmp 0x410684
mov edx, 0x457324
mov edi, dword [esi + 0x48]
mov ecx, dword [esi + 0x1c]
mov eax, ebx
mov dword [esi + 0x28], eax
mov dword [esi + 0x3c0], eax
mov dword [esi + 0x3c4], edx
cmp edi, ecx
jae 0x411346
mov ecx, dword [esi + 0xc]
mov edi, dword [ecx + edi*8]
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x41100c
shl eax, 5
push 8
push eax
push dword [esi + 0x60]
mov ebx, edx
call fcn.0041f3d0
mov edx, ebx
add esp, 0xc
mov bl, 0x12
mov ecx, dword [esi + 0x28]
cmp bl, 0x12
je 0x4106a0
jmp 0x411156
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x9c]
test edi, edi
je 0x41112c
xor ebx, ebx
xor edx, edx
mov dword [esi + 0x14], edi
jmp 0x41104c
inc edx
add ebx, 0x58
cmp edi, edx
je 0x41112c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x3c]
cmp edx, eax
jae 0x4112fa
mov eax, dword [ecx + 0x38]
cmp dword [eax + edx*8], 0
jne 0x411040
mov eax, dword [ecx + 0x9c]
mov dword [esi + 0x21f8], 0xffffffff
cmp edx, eax
jae 0x41133a
mov dword [esi + 8], edx
mov eax, dword [ecx + 0x98]
lea edi, [eax + ebx]
mov dword [esi + 0x180], str._registry_srcindex.crates.io_1cd66030c949c28d_sevenz_rust_0.6.1_src_reader.rs
mov dword [esi + 0x184], 0
push dword [eax + ebx + 0x48]
mov dword [esi + 0xc], ebx
push dword [eax + ebx + 0x44]
push dword [esi + 0x98]
push dword [esi + 0x9c]
lea ebx, [esi + 0x3c0]
push ebx
call fcn.00431150
add esp, 0x14
mov dword [esi + 0x21f8], 0x1d
push ebx
push 0x457070
lea eax, [esi + 0x180]
push eax
push edi
lea eax, [esi + 0x12d0]
push eax
call fcn.0041f4f0
add esp, 0x14
mov eax, dword [esi + 0x3c0]
test eax, eax
je 0x411103
push 1
push eax
push dword [esi + 0x3c4]
call fcn.0041f3d0
add esp, 0xc
movzx ecx, byte [esi + 0x12d0]
movzx edx, byte [esi + 0x12d1]
cmp cl, 0x12
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0xc]
jne 0x4111f9
test dl, dl
je 0x41112c
mov edx, dword [esi + 8]
jmp 0x411040
mov eax, dword [ebp + 8]
mov byte [eax], 0x12
jmp 0x4111c6
mov ecx, dword [esi + 0x184]
mov edx, dword [esi + 0x188]
mov dword [esi + 0x18], 0
mov eax, str._registry_srcindex.crates.io_1cd66030c949c28d_sevenz_rust_0.6.1_src_reader.rs
mov bl, 4
mov edi, 0x80000000
mov dword [esi + 8], eax
movzx eax, word [esi + 0x4e]
mov word [esi + 0x3e], ax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], edx
mov dword [esi + 0x84], edi
mov eax, dword [esi + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x80], eax
movzx eax, byte [esi + 0x2d]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov byte [eax], bl
mov ecx, dword [esi + 0x14]
mov byte [eax + 1], cl
movzx ecx, word [esi + 0x3e]
mov word [eax + 2], cx
mov ecx, dword [esi + 0x8c]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x88]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x84]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x7c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0x80]
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x21f0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x21f8], 0x13
push 0x457060
push eax
push edx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
movsd xmm0, qword [esi + 0x12e0]
mov eax, dword [ebp + 8]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [esi + 0x12d2]
movups xmmword [eax + 2], xmm0
mov byte [eax], cl
mov byte [eax + 1], dl
jmp 0x4111c6
mov dword [esi + 0x21f8], 0
push 0x45738c
push dword [esi + 0x28]
push ebx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0
push 0x45739c
push dword [esi + 0x1c]
push edx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0
push 0x45737c
push 0x20
push edi
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0xffffffff
push 0x457260
push eax
push edx
call fcn.004552d0
mov dword [esi + 0x21f8], 0x13
push 0x457040
push eax
push edx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0x13
push 0x457050
push eax
push edx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0xffffffff
push 0x457270
push eax
push edx
call fcn.004552d0
push 0x457280
push eax
push edi
call fcn.004552d0
push 0x457290
push eax
push edi
call fcn.004552d0
mov dword [esi + 0x21f8], 0xffffffff
push 0x457240
push eax
push edx
call fcn.004552d0
mov dword [esi + 0x21f8], 0xffffffff
push 0x457304
push eax
push edi
call fcn.004552d0
push 0x457314
push ebx
push edx
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
push 0x457250
push eax
push edx
call fcn.004552d0
mov dword [esi + 0x21f8], 8
push 0x457350
push ecx
push edi
call fcn.004552d0
add esp, 0xc
jmp 0x41145c
mov dword [esi + 0x21f8], 0x13
push 8
push 4
call fcn.00455080
add esp, 8
jmp 0x41145c
mov dword [esi + 0x21f8], 0xe
push 0xf10
push 0x10
call fcn.00455080
add esp, 8
jmp 0x41145c
mov dword [esi + 0x21f8], 0x15
push 0x20
push 8
call fcn.00455080
add esp, 8
jmp 0x41145c
push 8
push 4
call fcn.00455080
mov dword [esi + 0x21f8], 0xffffffff
call fcn.00441150
mov dword [esi + 0x21f8], 0xffffffff
push 0x4573ac
push eax
push ebx
call fcn.00455540
mov dword [esi + 0x21f8], 0xffffffff
push edi
push 8
call fcn.00455080
mov dword [esi + 0x21f8], 0x11
push 0x20
push 8
call fcn.00455080
add esp, 8
jmp 0x41145c
call fcn.00441150
jmp 0x41145c
call fcn.00441150
jmp 0x41145c
push edi
push 4
call fcn.00455080
add esp, 8
jmp 0x41145c
mov dword [esi + 0x21f8], 0xa
push 0x270
push 8
call fcn.00455080
add esp, 8
jmp 0x41145c
mov dword [esi + 0x21f8], 9
push 0x20
push 8
call fcn.00455080
add esp, 8
ud2