Function at 0x41b38c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x2a40
call fcn.005251d0
mov esi, esp
mov dword [esi + 0x2a28], ebp
lea eax, [esi + 0x2a30]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x10], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x5012b0
mov edi, dword fs:[0]
mov dword [eax], edi
mov dword fs:[0], eax
call 0x41b3d5
pop eax
mov dword [esi + 0xe0], eax
call fcn.0040194f
test eax, eax
je 0x41ed53
mov ebx, dword [ebp + 8]
mov edi, edx
mov edx, eax
lea ecx, [esi + 0x488]
push edi
call fcn.0040793d
pop eax
mov edx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.0040194f
test eax, eax
je 0x41ed5d
and dword [esi + 0x2a38], 0
mov edi, edx
lea ecx, [esi + 0xa28]
mov edx, eax
push edi
call fcn.0040793d
pop eax
lea ecx, [esi + 0x298]
lea eax, [esi + 0x488]
lea edx, [esi + 0xa28]
mov dword [ecx], eax
mov eax, fcn.00424642
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
lea edx, [esi + 0x198]
mov dword [ecx + 0xc], eax
mov dword [edx], str.Extracting
push 2
pop eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
lea ecx, [esi + 0x390]
mov dword [esi + 0x88], eax
mov dword [edx + 0xc], eax
mov dword [esi + 0x2a38], 1
call fcn.004071d2
mov ecx, dword [esi + 0xa28]
mov edx, dword [esi + 0xa2c]
call fcn.00466c68
mov ecx, dword [esi + 0x488]
mov edx, dword [esi + 0x48c]
call fcn.00466c68
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x394]
mov edx, dword [esi + 0x398]
mov dword [esi + 0x2a38], 2
mov dword [esi + 0xc], eax
mov dword [esi + 8], ecx
call fcn.004087c4
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
call fcn.00466c68
or dword [esi + 0x2a38], 0xffffffff
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x488]
mov ecx, edi
push dword [esi + 0x10]
call fcn.00401235
pop eax
cmp byte [edi], 4
jne 0x41ed73
mov eax, dword [esi + 0x48c]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov byte [esi + 0x2b], 1
mov dword [esi + 0x2a38], 4
mov dword [esi + 0x8c], eax
call fcn.004018d6
test al, al
jne 0x41b550
mov byte [esi + 0x2b], 1
lea ecx, [esi + 0xa28]
xor edx, edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004d5d50
pop eax
pop ecx
cmp byte [esi + 0xa28], 4
je 0x41b550
cmp byte [esi + 0xa28], 4
jne 0x41ef31
mov ebx, dword [esi + 0x8c]
lea edi, [esi + 0xa28]
mov ecx, edi
mov dword [esi + 0x34], ebx
mov edx, ebx
push 0
push 0
push 0
push 1
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [edi], eax
je 0x41b597
mov eax, dword [esi + 0xa2c]
mov ecx, dword [esi + 0xa30]
mov dword [esi + 0xc], 0
mov dword [esi + 8], eax
mov dword [esi + 0x2c], ecx
jmp 0x41b70d
mov edi, dword [esi + 0xa30]
mov ebx, dword [esi + 0xa34]
xor ecx, ecx
mov eax, edi
mov edx, ebx
sub eax, 0x10015
sbb edx, ecx
cmovb edx, ecx
cmovb eax, ecx
mov dword [esi + 0x1c], edx
xor edx, edx
mov dword [esi + 8], eax
mov eax, ebx
inc edx
cmp edi, 0x16
sbb eax, ecx
mov dword [esi + 0xc], edx
jae 0x41b5dd
mov dword [esi + 8], 0x52a94c
push 0x12
pop eax
mov dword [esi + 0x2c], eax
jmp 0x41b70d
push 0x2b
pop eax
add edi, 0xffffffea
mov dword [esi + 0x78], eax
adc ebx, 0xffffffff
push 0x24
pop ecx
mov edx, dword [esi + 0x8c]
mov dword [esi + 0x2c], ecx
cmp edi, dword [esi + 8]
mov eax, ebx
sbb eax, dword [esi + 0x1c]
jb 0x41b68a
lea ecx, [esi + 0xa28]
mov dword [esi + 0x10], ebx
push ebx
push edi
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0xa28], eax
jne 0x41b693
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov dword [esi + 0x18], edi
mov dword [esi + 0x2a38], 0x1f
call fcn.004085a4
cmp byte [esi + 0xa28], 4
mov edi, dword [esi + 0x18]
jne 0x41b659
mov eax, dword [esi + 0xa2c]
mov edx, dword [esi + 0x8c]
jmp 0x41b674
mov ebx, dword [esi + 0xa28]
mov eax, dword [esi + 0xa2c]
mov edx, dword [esi + 0x8c]
cmp bl, 4
jne 0x41d2bd
mov ebx, dword [esi + 0x10]
cmp eax, 0x6054b50
je 0x41b6ae
sub edi, 1
sbb ebx, 0
jae 0x41b5f5
mov dword [esi + 8], str.Could_not_find_central_directory_endInvalid_zip_headerInvalid_digital_signature_headerCould_not_find_ZIP64_central_directory_endInvalid_zip64_locator_digital_signature_header
jmp 0x41b70d
mov eax, dword [esi + 0xa2c]
mov ecx, dword [esi + 0xa30]
mov dword [esi + 0x2a38], 4
jmp 0x41b585
lea edi, [esi + 0xa28]
mov ebx, edx
mov ecx, edi
push 0
push 0x10
push 0
push 2
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [edi], eax
jne 0x41b6f4
lea edi, [esi + 0xa28]
mov edx, ebx
mov ecx, edi
push dword [esi + 0x10]
push dword [esi + 0x18]
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [edi], eax
je 0x41d2cc
mov eax, dword [esi + 0xa2c]
mov dword [esi + 8], eax
mov eax, dword [esi + 0xa30]
mov dword [esi + 0x2c], eax
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0x34]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x2a38], 4
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 0xc], 4
jne 0x41edb3
mov ebx, dword [esi + 8]
lea ecx, [esi + 0x298]
lea eax, [esi + 0x390]
mov edx, dword [esi + 0x2c]
lea edi, [esi + 0xb8]
mov dword [edi - 4], ebx
mov dword [edi], edx
mov edx, dword [ebx + 0x38]
mov dword [esi + 0x184], edx
mov edx, 0xdd
lea edi, [ecx + edx]
add edx, eax
mov dword [esi + 0x188], edi
mov dword [esi + 0x18c], edx
push 0x21
pop eax
xor edx, edx
mov dword [esi + 0x2c], eax
cmp edx, dword [esi + 0x184]
jae 0x41d254
mov eax, dword [esi + 0xb4]
mov edi, edx
mov dword [esi + 0x90], edx
shl edi, 7
add edi, dword [eax + 0x34]
cmp dword [eax + 0x38], edx
mov dword [esi + 0x298], 3
mov dword [esi + 0x1c], edi
jbe 0x41d918
mov dword [esi + 0x2a38], 5
call fcn.00405053
mov eax, dword [esi + 0x1c]
cmp byte [eax + 0x76], 0
jne 0x41d97a
mov edx, dword [esi + 0xb8]
lea edi, [esi + 0x298]
mov ecx, edi
push dword [eax + 0x24]
push dword [eax + 0x20]
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0x298], eax
jne 0x41d728
mov ecx, edi
lea edx, [esi + 0xb8]
call fcn.004085a4
cmp byte [esi + 0x298], 4
jne 0x41b817
mov eax, dword [esi + 0x29c]
lea edi, [esi + 0x298]
jmp 0x41b832
mov ecx, dword [esi + 0x298]
mov eax, dword [esi + 0x29c]
lea edi, [esi + 0x298]
cmp cl, 4
jne 0x41ec1f
cmp eax, 0x4034b50
jne 0x41d983
mov edx, dword [esi + 0xb8]
mov ecx, edi
push 0
push 0x16
push 0
push 2
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0x298], eax
jne 0x41d728
mov ecx, edi
lea edx, [esi + 0xb8]
call fcn.0040855a
cmp byte [esi + 0x298], 4
jne 0x41b888
movzx eax, word [esi + 0x29a]
lea ecx, [esi + 0x298]
jmp 0x41b89f
mov eax, dword [esi + 0x298]
lea ecx, [esi + 0x298]
cmp al, 4
jne 0x41ec31
shr eax, 0x10
mov dword [esi + 8], eax
lea edx, [esi + 0xb8]
call fcn.0040855a
cmp byte [esi + 0x298], 4
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x1c]
jne 0x41b8cb
movzx edx, word [esi + 0x29a]
lea ecx, [esi + 0x298]
jmp 0x41b8e3
mov edx, dword [esi + 0x298]
lea ecx, [esi + 0x298]
cmp dl, 4
jne 0x41ec3f
shr edx, 0x10
movzx eax, ax
mov edi, dword [ebx + 0x24]
movzx edx, dx
add eax, dword [ebx + 0x20]
adc edi, 0
add eax, edx
adc edi, 0
add eax, 0x1e
adc edi, 0
movd xmm1, eax
movd xmm0, edi
punpckldq xmm1, xmm0
movq qword [ebx + 0x30], xmm1
mov edx, dword [esi + 0xb8]
push edi
push eax
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0x298], eax
jne 0x41d728
cmp word [ebx + 0x68], 5
je 0x41d923
cmp byte [ebx + 0x75], 2
jne 0x41d954
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov dword [esi + 0x10], eax
push 0x114
lea eax, [esi + 0xa28]
push eax
lea eax, [esi + 0x50c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, word [esi + 0x390]
lea ecx, [esi + 0x508]
mov byte [esi + 0x620], 0
mov word [ecx + 0x119], ax
mov al, byte [esi + 0x392]
mov byte [ecx + 0x11b], al
push 2
pop edi
lea eax, [esi + 0xb8]
mov dword [esi + 0x624], edi
mov dword [esi + 0x628], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x62c], 0x52a798
mov dword [esi + 0x634], ebx
mov dword [esi + 0x630], eax
push 0xc0
lea ebx, [esi + 0x198]
push ebx
lea eax, [esi + 0x638]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x488], edi
mov edx, ebx
mov dword [esi + 0x48c], ecx
mov dword [esi + 0x508], edi
mov eax, dword [ecx + 0x3c]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x40]
and dword [esi + 0x198], 0
xor ecx, ecx
mov dword [esi + 0x2a38], 6
mov dword [esi + 0x18], eax
call fcn.00406b10
cmp edx, 0x100
jae 0x41d92e
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x198]
inc dword [esi + 0x90]
mov dword [esi + 0xc], edx
mov dword [esi + 0xa2c], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0xa30], ecx
and dword [esi + 0xa34], 0
mov dword [esi + 0xa38], ecx
and dword [esi + 0xa28], 0
mov byte [esi + 0xa40], dl
mov dword [esi + 0xa3c], eax
xor ecx, ecx
mov bl, byte [esi + edx + 0xa3b]
mov edi, dword [esi + 0x18]
sub edi, ecx
jb 0x41bb17
mov eax, dword [esi + 8]
cmp edi, 7
mov dword [esi + 0x10], ecx
lea edx, [eax + ecx]
ja 0x41ba93
xor eax, eax
xor ecx, ecx
cmp edi, ecx
je 0x41baa6
cmp byte [edx + ecx], bl
je 0x41baa1
inc ecx
jmp 0x41ba87
movzx ecx, bl
push edi
call fcn.0042fd80
pop ecx
mov edi, edx
jmp 0x41baa6
xor eax, eax
mov edi, ecx
inc eax
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
cmp eax, 1
jne 0x41bb17
lea ecx, [edi + ecx + 1]
mov edi, ecx
sub edi, edx
jb 0x41ba6a
cmp ecx, dword [esi + 0x18]
ja 0x41ba6a
cmp dl, 5
mov dword [esi + 0x10], ecx
jae 0x41d6dc
mov eax, dword [esi + 8]
add eax, edi
push edx
lea ecx, [esi + 0xa3c]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
mov ecx, dword [esi + 0x10]
test eax, eax
jne 0x41ba6a
mov eax, dword [esi + 0x1c]
test edi, edi
mov edx, dword [eax + 0x3c]
je 0x41c1be
mov eax, dword [eax + 0x40]
cmp eax, edi
jbe 0x41c1c5
cmp byte [edx + edi], 0xbf
mov dword [esi + 0x2a38], 6
jg 0x41bb2a
jmp 0x41eddf
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x3c]
mov edi, dword [eax + 0x40]
mov dword [esi + 0x2a38], 6
mov dword [esi + 0x2a38], 6
lea ecx, [esi + 0x7e0]
push edi
call fcn.00500b01
pop eax
mov eax, dword [esi + 0x7e4]
mov ecx, dword [esi + 0x7e8]
mov dword [esi + 0x2a38], 7
mov dword [esi + 0x94], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0xec], eax
lea ecx, [esi + 0x390]
push 0x2f
pop edx
call fcn.00500b57
mov dword [esi + 0x2a38], 0xb
lea ecx, [esi + 0x298]
push 0x5c
pop edx
call fcn.00500b57
mov eax, dword [esi + 0x29c]
mov ecx, dword [esi + 0x2a0]
mov ebx, dword [esi + 0x398]
and dword [esi + 0x198], 0
mov dword [esi + 0x19c], 1
and dword [esi + 0x1a0], 0
mov edi, dword [esi + 0x394]
mov edx, dword [esi + 0x58]
mov dword [esi + 0x2a38], 0xc
mov dword [esi + 0x74], ecx
mov dword [esi + 0x6c], eax
lea ecx, [esi + 0xa28]
push ebx
mov dword [esi + 0x190], edi
push edi
push dword [esi + 0x94]
call fcn.0042ff40
add esp, 0xc
mov edx, dword [esi + 0xa64]
mov eax, dword [esi + 0xa40]
mov ecx, dword [esi + 0xa34]
mov ebx, edx
mov dword [esi + 0xd8], eax
mov edi, ecx
mov dword [esi + 0x194], ecx
mov byte [esi + 0x120], cl
mov dword [esi + 0x18], edx
sub ebx, eax
mov eax, dword [esi + 0x74]
and edi, 0xffffff00
mov dword [esi + 0xdc], edi
mov dword [esi + 0x180], ebx
add eax, dword [esi + 0x6c]
mov dword [esi + 0x74], eax
mov eax, ecx
mov eax, dword [esi + 0xa28]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0xa30]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0xa38]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0xa44]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0xa4c]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0xa58]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xa5c]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xa60]
mov dword [esi + 8], eax
mov eax, edx
lea eax, [edx - 1]
mov dword [esi + 0x60], eax
xor eax, eax
cmp dword [esi + 0xb0], 0
mov dword [esi + 0x70], eax
je 0x41be38
movzx eax, byte [esi + 0x120]
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0xc]
or eax, dword [esi + 0xdc]
mov ecx, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x98]
mov edi, ecx
mov dword [esi + 0xac], ecx
cmp eax, ecx
cmova edi, eax
cmp edx, 0xffffffff
cmove edi, eax
mov eax, 0
cmove ecx, eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x80], edi
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x60]
add ecx, eax
cmp ecx, dword [esi + 0x10]
jae 0x41bf69
mov cl, byte [ebx + ecx]
xor edi, edi
xor ebx, ebx
mov edx, eax
mov eax, 0
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
and edi, dword [esi + 0x20]
and ebx, dword [esi + 0x40]
or ebx, edi
je 0x41bd62
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 0x80]
mov eax, edx
lea edi, [ecx + edx]
cmp ebx, dword [esi + 0x18]
jae 0x41bd78
mov ecx, ebx
add ebx, eax
cmp ebx, dword [esi + 0x10]
jae 0x41d22a
mov eax, dword [esi + 8]
lea ebx, [ecx + 1]
mov al, byte [eax + ecx]
cmp al, byte [edi + ecx]
mov eax, edx
je 0x41bd2e
sub eax, dword [esi + 0x98]
mov edx, dword [esi + 0x30]
cmp edx, 0xffffffff
lea eax, [eax + ecx + 1]
jmp 0x41bd6d
mov eax, edx
mov edx, dword [esi + 0x30]
add eax, dword [esi + 0x18]
cmp edx, 0xffffffff
mov ebx, dword [esi + 0xc]
je 0x41bceb
jmp 0x41bdce
mov ecx, dword [esi + 0x98]
cmp dword [esi + 0x1c], ecx
jae 0x41bdd8
dec ecx
cmp ecx, dword [esi + 0x18]
jae 0x41d281
lea edi, [ecx + edx]
mov eax, edx
cmp edi, dword [esi + 0x10]
jae 0x41d29e
mov eax, dword [esi + 8]
mov bl, byte [eax + ecx]
mov eax, dword [esi + 0xc]
cmp bl, byte [eax + edi]
mov ebx, dword [esi + 0xc]
je 0x41bd7e
mov eax, edx
mov edx, dword [esi + 0x30]
add eax, dword [esi + 0xd8]
cmp edx, 0xffffffff
je 0x41bceb
mov ecx, dword [esi + 0x180]
mov dword [esi + 0x68], eax
jmp 0x41bcbe
mov dword [esi + 0x68], eax
xor ecx, ecx
jmp 0x41bcbe
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x30], 0xffffffff
mov ebx, dword [esi + 0xac]
mov ecx, edx
mov dword [esi + 0x2a38], 0xc
lea edi, [edx + eax]
mov eax, 0
cmovne ebx, eax
mov eax, ecx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x30], ebx
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x70]
add eax, ecx
add edx, ecx
lea ecx, [esi + 0x198]
push eax
call fcn.004ff065
pop eax
mov edx, dword [esi + 0x6c]
lea ecx, [esi + 0x198]
push dword [esi + 0x74]
call fcn.004ff065
pop eax
mov eax, dword [esi + 0x1c]
jmp 0x41bc96
test dword [esi + 0x194], 0xff0000
mov ebx, dword [esi + 0xc]
jne 0x41bf69
mov ecx, dword [esi + 0x48]
mov dh, byte [esi + 0x120]
test ecx, ecx
je 0x41be6e
cmp ecx, dword [esi + 0x10]
jae 0x41be68
cmp byte [ebx + ecx], 0xbf
jg 0x41be6e
jmp 0x41d60f
jne 0x41d60f
cmp ecx, dword [esi + 0x10]
je 0x41bf20
mov dl, byte [ebx + ecx]
movzx eax, dl
test dl, dl
jns 0x41bee7
movzx edi, byte [ebx + ecx + 1]
and eax, 0x1f
and edi, 0x3f
cmp dl, 0xdf
jbe 0x41bed6
mov dword [esi + 0x48], ecx
shl edi, 6
mov ecx, dword [esi + 0x48]
movzx ecx, byte [ebx + ecx + 2]
mov ebx, dword [esi + 0x48]
and ecx, 0x3f
or ecx, edi
cmp dl, 0xf0
jb 0x41bedd
mov edi, dword [esi + 0xc]
mov byte [esi + 0x120], dh
and eax, 7
shl ecx, 6
shl eax, 0x12
movzx edx, byte [edi + ebx + 3]
and edx, 0x3f
or edx, ecx
mov ecx, ebx
mov ebx, edi
or eax, edx
mov dh, byte [esi + 0x120]
jmp 0x41bee7
shl eax, 6
or eax, edi
jmp 0x41bee7
shl eax, 0xc
or eax, ecx
mov ecx, ebx
mov ebx, dword [esi + 0xc]
test dh, dh
jne 0x41bf49
cmp eax, 0x110000
je 0x41bf69
mov edx, ecx
cmp eax, 0x80
mov ecx, 1
jb 0x41bf15
cmp eax, 0x800
push 2
pop ecx
jb 0x41bf15
cmp eax, 0x10000
push 4
pop ecx
sbb ecx, 0
add edx, ecx
mov ecx, edx
mov dh, 1
jmp 0x41be54
test dh, dh
mov byte [esi + 0x120], dh
mov dword [esi + 0x2a38], 0xc
je 0x41bf69
mov eax, dword [esi + 0x10]
xor byte [esi + 0x120], 1
mov dword [esi + 0x1c], eax
mov dword [esi + 0x48], eax
jmp 0x41be07
xor dh, 1
mov eax, ecx
mov dword [esi + 0x2a38], 0xc
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x48], ecx
mov byte [esi + 0x120], dh
jmp 0x41be07
mov eax, dword [esi + 0x58]
mov edi, dword [esi + 0x94]
mov edx, dword [esi + 0x70]
mov dword [esi + 0x2a38], 0xc
lea ecx, [esi + 0x198]
add edi, eax
add edx, eax
push edi
call fcn.004ff065
pop eax
mov eax, dword [esi + 0x198]
mov ecx, dword [esi + 0x298]
mov edx, dword [esi + 0x6c]
mov ebx, dword [esi + 0x19c]
mov edi, dword [esi + 0x1a0]
mov dword [esi + 0x1c], eax
call fcn.00463f4e
mov ecx, dword [esi + 0x390]
mov edx, dword [esi + 0x190]
call fcn.00463f4e
mov eax, dword [esi + 0x58]
mov dword [esi + 0x2a38], 8
lea ecx, [esi + 0xa28]
mov dword [esi + 0xc], ebx
mov edx, ebx
mov dword [esi + 0x13c], eax
push edi
call fcn.004d8ea0
pop eax
mov eax, dword [esi + 0x78]
movsd xmm1, qword [esi + 0xa38]
movq xmm0, qword [esi + 0xa40]
movsd xmm2, qword [esi + 0xa28]
mov dword [esi + 0x18], 0
mov dword [esi + 8], 0
and eax, 0xffffff00
movsd qword [esi + 0x1a8], xmm1
movq xmm1, qword [esi + 0xa30]
movq qword [esi + 0x1b0], xmm0
movsd qword [esi + 0x198], xmm2
or eax, 1
mov dword [esi + 0x78], eax
xor eax, eax
inc eax
movq qword [esi + 0x1a0], xmm1
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x298]
lea edx, [esi + 0x198]
mov byte [esi + 0x7f], 1
mov dword [esi + 0x2a38], 9
call fcn.004d03d0
movzx eax, byte [esi + 0x298]
cmp eax, 9
je 0x41c08a
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x10]
cmp eax, 0xa
jne 0x41c125
jmp 0x41c13a
mov eax, dword [esi + 0x18]
lea edx, [esi + 0x299]
lea ecx, [esi + 0xa3c]
mov dword [esi + 0x2a38], 0xa
movq xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movq xmm1, qword [edx + 8]
mov dword [esi + 0xa28], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa2c], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xa30], eax
mov eax, dword [esi + 0x78]
mov dword [esi + 0xa34], eax
mov eax, dword [edx + 0x17]
mov byte [esi + 0xa38], 9
movq qword [ecx + 5], xmm1
movsd qword [ecx - 3], xmm2
mov dword [ecx + 0x14], eax
movq qword [ecx + 0xd], xmm0
lea ecx, [esi + 0xa28]
mov eax, dword [esi + 0xa40]
mov edx, dword [esi + 0xa3c]
push eax
call fcn.004d5060
pop eax
mov eax, dword [esi + 0xa30]
mov edx, dword [esi + 0xa34]
mov ecx, dword [esi + 0xa28]
mov edi, dword [esi + 0xa2c]
mov dword [esi + 8], eax
mov dword [esi + 0x78], edx
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], ecx
mov dword [esi + 0x2a38], 9
jmp 0x41c04b
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0xc]
call fcn.00463f4e
mov ecx, dword [esi + 0x7e0]
mov edx, dword [esi + 0x58]
call fcn.00463f4e
mov byte [esi + 0x53], 1
mov dword [esi + 0x2a38], 0xd
lea ecx, [esi + 0xa28]
mov edx, edi
push dword [esi + 8]
call fcn.004e2c50
pop eax
mov ecx, dword [esi + 0xa28]
mov edx, dword [esi + 0xa2c]
mov edi, dword [esi + 0xa30]
call fcn.004bdc15
test edi, edi
jne 0x41c1da
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
call fcn.00466c68
lea ecx, [esi + 0x488]
mov dword [esi + 0x2a38], 5
call fcn.00404820
mov edx, dword [esi + 0x90]
lea ecx, [esi + 0x298]
jmp 0x41b773
xor edi, edi
jmp 0x41bb2a
mov dword [esi + 0x2a38], 6
je 0x41bb2a
jmp 0x41eddf
cmp dword [ebp + 0xc], 0
mov edi, 1
je 0x41c204
js 0x41f168
mov edx, dword [ebp + 0xc]
mov al, byte [0x5c3018]
xor ecx, ecx
call fcn.004e33d0
test eax, eax
je 0x41f176
mov edi, eax
mov ebx, dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x10]
mov dword [esi + 0x9c], ebx
mov dword [esi + 0xa0], edi
mov dword [esi + 0xa4], ebx
mov byte [esi + 0xa8], 0
mov dword [esi + 0x2a38], 0x1e
lea ecx, [esi + 0x9c]
push dword [esi + 8]
call fcn.004d5060
pop eax
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
call fcn.00466c68
mov ecx, dword [esi + 0x488]
mov eax, dword [esi + 0x48c]
lea edi, [esi + 0x488]
mov edx, edi
cmp ecx, 2
cmove edx, eax
mov edx, dword [edx + 0x40]
test edx, edx
je 0x41c2c0
cmp ecx, 2
cmovne eax, edi
mov eax, dword [eax + 0x3c]
cmp byte [eax + edx - 1], 0x2f
jne 0x41c2c0
mov edx, dword [esi + 0xa0]
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x2a38], 0xe
lea ecx, [esi + 0xa28]
mov dword [esi + 0x1c], edx
push eax
call fcn.004ff1ba
pop eax
cmp byte [esi + 0xa28], 4
jne 0x41d201
mov edx, dword [esi + 0x1c]
jmp 0x41d1da
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa4]
mov dword [esi + 0x2a38], 0xe
mov dword [esi + 0x1c], ecx
mov dword [esi + 8], edx
call fcn.004d6670
test eax, eax
je 0x41c324
mov ecx, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x30], edx
call fcn.004018d6
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0xc]
test al, al
jne 0x41c324
xor edx, edx
lea ecx, [esi + 0xa28]
inc edx
push ebx
push edi
call fcn.004d5d50
pop eax
pop ecx
cmp byte [esi + 0xa28], 4
je 0x41c324
cmp byte [esi + 0xa28], 4
jne 0x41d213
mov edx, dword [esi + 0x1c]
lea ecx, [esi + 0xa28]
push dword [esi + 8]
call fcn.004ff1cc
pop eax
cmp byte [esi + 0xa28], 4
jne 0x41c355
mov eax, dword [esi + 0x17c]
mov edx, dword [esi + 0xa2c]
and eax, 0xffffff00
or eax, 4
jmp 0x41c361
mov eax, dword [esi + 0xa28]
mov edx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 8], edx
jne 0x41f124
lea ecx, [esi + 0xa28]
mov dword [esi + 0x17c], eax
mov dword [esi + 0xc8], ecx
mov dword [esi + 0xcc], 0x2000
and dword [esi + 0xd0], 0
lea ecx, [esi + 0xd4]
and dword [ecx], 0
xor eax, eax
mov dword [esi + 0x2a38], 0xf
lea ecx, [esi + 0xc8]
mov dword [esi + 0x24], edx
mov dword [esi + 0x118], ecx
lea ecx, [esi + 0x118]
mov dword [esi + 0x11c], eax
call fcn.004ff23e
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xcc]
mov edx, dword [esi + 0xd4]
mov eax, dword [esi + 0xc8]
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0x24], ebx
push edi
push eax
call fcn.004ff20d
pop ecx
pop edi
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x508]
mov ebx, edx
mov dword [esi + 0xc], edx
cmp eax, 2
jne 0x41c50c
push 0xd8
lea eax, [esi + 0x620]
push eax
lea edi, [esi + 0x198]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [esi + 0x620], 3
lea ecx, [esi + 0x950]
mov edx, edi
mov dword [esi + 0x24], eax
push 0x5a8e4c
call fcn.005004d0
pop eax
cmp dword [esi + 0x488], 2
lea eax, [esi + 0x488]
jne 0x41c452
mov eax, dword [esi + 0x48c]
cmp byte [esi + 0x950], 2
movzx ecx, word [eax + 0x68]
sete dh
cmp byte [esi + 0x951], 0
setne dl
cmp ecx, 4
ja 0x41d888
mov ecx, dword [ecx*4 + 0x41fd30]
mov edi, dword [eax + 0x6c]
and dh, dl
mov byte [esi + 0x30], dh
add ecx, dword [esi + 0xe0]
mov dword [esi + 0x20], edi
jmp ecx
add eax, 0xfffffffe
cmp eax, 6
push 3
pop ecx
cmovae eax, ecx
mov edi, dword [esi + 8]
mov eax, dword [eax*4 + 0x41fd58]
add eax, dword [esi + 0xe0]
jmp eax
lea edi, [esi + 0x488]
mov ecx, dword [esi + 0x9c]
call fcn.00466c68
mov ecx, edi
mov dword [esi + 0x2a38], 5
call fcn.00404820
jmp 0x41c1ad
cmp byte [esi + 0xa28], 4
mov edx, dword [esi + 0x1c]
lea edi, [esi + 0x488]
je 0x41d1e0
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
mov dword [esi + 0xc], eax
mov dword [esi + 8], ecx
jmp 0x41d5e0
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x2a38], 0xc
add ecx, eax
cmp edx, ecx
cmova ecx, edx
push 0x5a86c0
call fcn.00526920
pop eax
jmp 0x41f455
lea ecx, [esi + 0xb4]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x2a38], 4
call fcn.00406390
mov eax, dword [esi + 0x2a30]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x18]
mov dword [esi + 0x2a38], 0xc
push 0x5a86a0
call fcn.00526920
pop eax
jmp 0x41f455
mov edx, dword [esi + 0x10]
mov dword [esi + 0x2a38], 0xc
mov ecx, edi
push 0x5a86b0
call fcn.00526920
pop eax
jmp 0x41f455
mov dword [esi + 8], ebx
mov dword [esi + 0xc], 0
jmp 0x41b5d5
lea ecx, [esi + 0xa28]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov dword [esi + 0x10], edx
lea edx, [esi + 0x34]
mov dword [esi + 0x18], eax
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41d2f7
mov eax, dword [esi + 0xa2c]
jmp 0x41d308
mov ecx, dword [esi + 0xa28]
mov eax, dword [esi + 0xa2c]
cmp cl, 4
jne 0x41d33d
cmp eax, 0x6054b50
jne 0x41d32f
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41d345
movzx eax, word [esi + 0xa2a]
jmp 0x41d356
mov dword [esi + 8], 0x52a95e
push 0x20
jmp 0x41b5d4
mov dword [esi + 8], ecx
jmp 0x41b703
mov eax, dword [esi + 0xa28]
cmp al, 4
jne 0x41d56b
shr eax, 0x10
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov word [esi + 0x1c], ax
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41d37a
movzx eax, word [esi + 0xa2a]
jmp 0x41d38b
mov eax, dword [esi + 0xa28]
cmp al, 4
jne 0x41d56b
shr eax, 0x10
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov word [esi + 0x30], ax
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41d3af
movzx eax, word [esi + 0xa2a]
jmp 0x41d3c0
mov eax, dword [esi + 0xa28]
cmp al, 4
jne 0x41d56b
shr eax, 0x10
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov word [esi + 0x20], ax
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41d3e4
movzx eax, word [esi + 0xa2a]
jmp 0x41d3f5
mov eax, dword [esi + 0xa28]
cmp al, 4
jne 0x41d56b
shr eax, 0x10
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov word [esi + 0x60], ax
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41d41b
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x2c], eax
jmp 0x41d433
mov ecx, dword [esi + 0xa28]
mov eax, dword [esi + 0xa2c]
cmp cl, 4
mov dword [esi + 0x2c], eax
jne 0x41d579
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41d452
mov ecx, dword [esi + 0xa2c]
jmp 0x41d466
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
jne 0x41d581
mov dword [esi + 0x40], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41d489
movzx eax, word [esi + 0xa2a]
jmp 0x41d49a
mov eax, dword [esi + 0xa28]
cmp al, 4
jne 0x41d56b
shr eax, 0x10
movzx edx, ax
lea ecx, [esi + 0xa28]
call fcn.00425c36
mov edx, dword [esi + 0xa30]
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x2a38], 0x2c
lea ecx, [esi + 0x488]
mov dword [esi + 8], edx
push edx
mov dword [esi + 0xc], eax
push eax
lea eax, [esi + 0x34]
push eax
push ecx
call fcn.004016b0
add esp, 0x10
cmp byte [esi + 0x488], 4
je 0x41d4ef
cmp byte [esi + 0x488], 4
jne 0x41d58c
mov eax, dword [esi + 0xa28]
cmp eax, 0x80000000
je 0x41b70d
lea ecx, [esi + 0x298]
movzx edi, word [esi + 0x1c]
movzx ebx, word [esi + 0x30]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x40]
mov dword [ecx + 0x10], eax
movzx eax, word [esi + 0x20]
mov word [ecx + 0x14], di
mov word [ecx + 0x16], bx
mov word [ecx + 0x18], ax
movzx eax, word [esi + 0x60]
mov word [ecx + 0x1a], ax
call fcn.00401a11
mov ecx, eax
cmp di, bx
push 2
pop eax
mov dword [esi + 0xc], eax
je 0x41d634
test cl, cl
jne 0x41d634
push 0x2f
pop edi
mov ebx, 0x52a843
jmp 0x41f0fe
mov dword [esi + 8], eax
mov eax, dword [esi + 0xa2c]
jmp 0x41b703
mov dword [esi + 8], ecx
jmp 0x41b706
mov dword [esi + 8], eax
mov dword [esi + 0x2c], ecx
jmp 0x41b706
mov ecx, dword [esi + 0x48c]
mov eax, dword [esi + 0x488]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0xa28]
mov dword [esi + 8], eax
call fcn.00466c68
jmp 0x41b706
mov ecx, dword [esi + 0x9c]
mov edx, dword [esi + 0x1c]
call fcn.00466c68
lea ecx, [esi + 0x488]
mov dword [esi + 0x2a38], 5
call fcn.00404820
mov dword [esi + 0x10], 0x80000000
jmp 0x41d9b3
mov edx, dword [esi + 0x10]
mov eax, ecx
mov dword [esi + 0x2a38], 0xc
mov ecx, ebx
push 0x5a8a7c
push edx
push eax
call fcn.00526e00
add esp, 0xc
jmp 0x41f455
xor eax, eax
mov byte [esi + 0x30], cl
dec eax
push 0xffffffffffffffd6
pop ebx
sub ebx, dword [esi + 8]
mov edx, dword [esi + 0x8c]
lea edi, [esi + 0xa28]
mov ecx, edi
sbb eax, 0
push eax
push ebx
push 0
push 1
call fcn.004d4a80
add esp, 0x10
mov eax, dword [edi]
mov ecx, edi
mov byte [esi + 0x16], 0
mov dword [esi + 0x2a38], 0x20
mov dword [esi + 8], eax
call fcn.00405e0f
cmp dword [esi + 8], 0
je 0x41d6fb
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
cmp eax, dword [esi + 0x2c]
sbb ecx, 0
jb 0x41d6c9
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa2c], 0x52a8a1
mov dword [esi + 0xa30], 0x28
mov dword [esi + 0xa28], 1
sub ecx, dword [esi + 0x2c]
sbb eax, 0
cmp ecx, dword [esi + 0x40]
mov dword [esi + 8], ecx
mov dword [esi + 0x10], eax
sbb eax, 0
jae 0x41d787
xor eax, eax
mov ebx, 0x52a8a1
inc eax
mov dword [esi + 0xc], eax
push 0x28
pop edi
jmp 0x41f0fe
mov dword [esi + 0x2a38], 6
mov ecx, edx
push 4
pop edx
push 0x5a8a8c
call fcn.00526980
pop eax
jmp 0x41f455
lea ecx, [esi + 0x488]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085a4
cmp byte [esi + 0x488], 4
jne 0x41d7f6
mov eax, dword [esi + 0x48c]
mov dword [esi + 8], eax
jmp 0x41d80d
mov eax, dword [esi + 0x29c]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x2a0]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x88], 0
jmp 0x41d999
lea ecx, [esi + 0xa28]
mov byte [esi + 0x16], 0
call fcn.00405053
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
movzx ecx, word [esi + 0x20]
sub eax, dword [esi + 0x40]
mov dword [esi + 0x30], ecx
sbb edx, 0
mov dword [esi + 0x60], eax
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x30]
xor ecx, ecx
cmp eax, dword [esi + 0x18]
cmova eax, ecx
test eax, eax
mov dword [esi + 0x18], eax
je 0x41da73
mov eax, dword [esi + 0x18]
mov edi, eax
shl edi, 7
cmp eax, 0xffffff
ja 0x41d7e6
mov ecx, edi
call fcn.0040722a
test eax, eax
jne 0x41da76
push 8
pop ecx
mov edx, edi
mov byte [esi + 0x16], 0
call fcn.00526660
jmp 0x41f455
mov eax, dword [esi + 0x488]
mov ecx, dword [esi + 0x48c]
cmp al, 4
mov dword [esi + 8], ecx
jne 0x41ec0e
cmp dword [esi + 8], 0x7064b50
jne 0x41d8ee
lea ecx, [esi + 0x488]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085a4
cmp byte [esi + 0x488], 4
jne 0x41ebcd
mov eax, dword [esi + 0x48c]
mov dword [esi + 8], eax
jmp 0x41ebe0
lea ecx, [esi + 0x298]
mov eax, dword [esi + 8]
mov edx, 0x5a8dac
mov byte [esi + 0x17], 1
mov dword [esi + 0x2a38], 0x11
mov dword [ecx], 0x5a8da4
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 4
and dword [ecx + 0xc], 0
mov dword [esi + 0x54], eax
call fcn.005268e0
jmp 0x41f455
xor eax, eax
lea ecx, [esi + 0xa2c]
mov byte [esi + 0x16], 0
inc eax
mov dword [ecx], eax
mov dword [ecx + 4], 0x52a9a8
mov dword [ecx + 8], 0x2e
mov dword [ecx - 4], eax
call fcn.00405053
jmp 0x41d67f
push 3
pop eax
mov dword [esi + 0x88], eax
jmp 0x41d999
mov dword [esi + 8], 0x5a8d74
push 0x20
jmp 0x41d995
push 0x20
pop edx
mov ecx, str.char_len_should_be_less_than_255P
push 0x5a87ac
push 0x5a8730
lea eax, [esi + 0x7e0]
push eax
call fcn.00526c20
add esp, 0xc
jmp 0x41f455
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x52a918
push 0x52aa80
lea eax, [esi + 0x7e0]
push eax
call fcn.00526c20
add esp, 0xc
jmp 0x41f455
mov dword [esi + 8], 0x52a8c9
jmp 0x41d999
xor eax, eax
mov dword [esi + 8], str.Invalid_local_file_headerInvalid_Central_Directory_headerArchive_header_is_too_largeAES_encryption_without_AES_extra_data_fieldSupport_for_multi_disk_files_is_not_implementedFile_cannot_contain_ZIP64_central_directory_endInvalid_central_directory_size_or_offsetPassword_required_to_decrypt_fileCould_not_seek_to_start_of_central_directory
inc eax
mov dword [esi + 0x88], eax
push 0x19
pop eax
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x2a38], 4
mov dword [esi + 0x10], 0x80000001
mov dword [esi + 0xc], eax
lea ecx, [esi + 0xb4]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x2a38], 4
call fcn.00406390
mov eax, dword [esi + 0xc]
movq xmm0, qword [esi + 0x488]
mov dword [esi + 0x2a38], 0x2d
mov dword [esi + 0xa28], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xa2c], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xa30], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa38], eax
mov eax, dword [esi + 0x490]
movq qword [esi + 0xa3c], xmm0
mov dword [esi + 0xa44], eax
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x52bd70
push 0x52aa60
lea eax, [esi + 0xa28]
push eax
call fcn.00526c20
add esp, 0xc
jmp 0x41f455
push 8
pop eax
mov ecx, dword [esi + 0x18]
mov byte [esi + 0x4d], 1
mov dword [esi + 0x2a38], 0x21
mov dword [esi + 0x9c], ecx
mov dword [esi + 0xa0], eax
and dword [esi + 0xa4], 0
call fcn.00448524
mov eax, dword [0x5c301c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov byte [esi + 0x4d], 1
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov dword [esi + 0x1c], ecx
add ecx, 1
mov dword [esi + 0xc], edx
mov dword [eax + 0x58], ecx
mov ecx, edx
mov edx, dword [esi + 0x18]
adc ecx, 0
mov dword [eax + 0x5c], ecx
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0xa28]
mov dword [esi + 0x48], eax
call fcn.004086cd
lea edi, [esi + 0xa28]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x48]
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
movq qword [esi + 0x198], xmm0
movq qword [esi + 0x1a0], xmm1
mov dword [esi + 0x1ac], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1b0], edx
mov edx, dword [esi + 0x8c]
mov dword [esi + 0x1b4], ecx
mov ecx, edi
push dword [esi + 0x10]
push dword [esi + 8]
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [edi], eax
je 0x41db90
lea ecx, [esi + 0xa28]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
mov dword [esi + 0x2a38], 0x22
call fcn.00405e0f
xor eax, eax
mov dword [esi + 0x10], 0x52a8ea
inc eax
mov dword [esi + 0xc], eax
push 0x2c
pop eax
mov dword [esi + 0x20], eax
jmp 0x41f0d4
lea ecx, [esi + 0xa28]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
mov dword [esi + 0x2a38], 0x22
call fcn.00405e0f
push 2
pop eax
mov dword [esi + 0x94], eax
xor eax, eax
inc eax
mov dword [esi + 0xc], eax
push 0x20
pop eax
mov dword [esi + 0x20], eax
push 0x2e
pop eax
mov dword [esi + 0x90], eax
mov dword [esi + 0x48], 0
mov dword [esi + 0x98], 0
mov eax, dword [esi + 0x98]
cmp eax, dword [esi + 0x30]
jae 0x41ef62
mov edx, dword [esi + 0x34]
lea ecx, [esi + 0xa28]
push 0
push 0
push 0
push 2
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0xa28], eax
jne 0x41f030
mov ecx, dword [esi + 0xa34]
mov eax, dword [esi + 0xa30]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
mov dword [esi + 0x2a38], 0x22
mov dword [esi + 0x84], ecx
lea ecx, [esi + 0xa28]
mov dword [esi + 0x1c], eax
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41dc58
mov eax, dword [esi + 0xa2c]
jmp 0x41dc70
mov ecx, dword [esi + 0xa28]
mov eax, dword [esi + 0xa2c]
cmp cl, 4
mov dword [esi + 0x10], ecx
jne 0x41f1cd
cmp eax, 0x2014b50
jne 0x41f04b
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41dca6
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x10], eax
jmp 0x41dcbb
mov eax, dword [esi + 0xa28]
cmp al, 4
mov dword [esi + 0x10], eax
jne 0x41ef26
shr dword [esi + 0x10], 0x10
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
je 0x41dce7
cmp byte [esi + 0xa28], 4
jne 0x41ef1d
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41dd12
movzx eax, word [esi + 0xa2a]
mov dword [esi + 8], eax
jmp 0x41dd28
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 8], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41dd53
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x18], eax
jmp 0x41dd69
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x18], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41dd97
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x140], eax
jmp 0x41ddb0
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x140], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41ddde
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x120], eax
jmp 0x41ddf7
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x120], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41de24
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x80], eax
jmp 0x41de3e
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0x80], ecx
jne 0x41f1d9
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41de68
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x58], eax
jmp 0x41de7f
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0x58], ecx
jne 0x41f1e1
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41dea9
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x70], eax
jmp 0x41dec0
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0x70], ecx
jne 0x41f1e6
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41deeb
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x68], eax
jmp 0x41df01
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x68], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41df2c
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x6c], eax
jmp 0x41df42
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x6c], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
jne 0x41df6d
movzx eax, word [esi + 0xa2a]
mov dword [esi + 0x74], eax
jmp 0x41df83
mov eax, dword [esi + 0xa28]
mov ecx, eax
cmp al, 4
jne 0x41edbf
shr ecx, 0x10
mov dword [esi + 0x74], ecx
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
je 0x41dfaf
cmp byte [esi + 0xa28], 4
jne 0x41ef1d
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.0040855a
cmp byte [esi + 0xa28], 4
je 0x41dfdb
cmp byte [esi + 0xa28], 4
jne 0x41ef1d
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41e008
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0xb0], eax
jmp 0x41e022
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0xb0], ecx
jne 0x41f1eb
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41e04f
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0xac], eax
jmp 0x41e069
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0xac], ecx
jne 0x41f1f3
movzx edx, word [esi + 0x68]
lea ecx, [esi + 0xc8]
mov byte [esi + 0x14], 0
mov byte [esi + 0x15], 1
call fcn.00425c36
mov ecx, dword [esi + 0xd0]
mov eax, dword [esi + 0xcc]
mov byte [esi + 0x4e], 0
mov dword [esi + 0x2a38], 0x26
mov dword [esi + 0xdc], ecx
push ecx
mov dword [esi + 0x68], eax
push eax
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0xa28]
push eax
call fcn.004016b0
add esp, 0x10
cmp byte [esi + 0xa28], 4
je 0x41e0ce
cmp byte [esi + 0xa28], 4
jne 0x41f20b
movzx edx, word [esi + 0x6c]
lea ecx, [esi + 0x150]
mov byte [esi + 0x4e], 0
call fcn.00425c36
mov eax, dword [esi + 0x158]
mov ecx, dword [esi + 0x154]
mov byte [esi + 0x4f], 1
mov dword [esi + 0x2a38], 0x27
push eax
mov dword [esi + 0xd8], ecx
push ecx
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0xa28]
push eax
call fcn.004016b0
add esp, 0x10
cmp byte [esi + 0xa28], 4
je 0x41e12c
cmp byte [esi + 0xa28], 4
jne 0x41f229
movzx edx, word [esi + 0x74]
lea ecx, [esi + 0x170]
mov byte [esi + 0x4f], 1
call fcn.00425c36
mov edx, dword [esi + 0x178]
mov ecx, dword [esi + 0x174]
mov al, 1
mov dword [esi + 0x2a38], 0x28
mov byte [esi + 0x3e], al
mov byte [esi + 0x3f], al
mov dword [esi + 0x74], edx
push edx
mov dword [esi + 0x6c], ecx
push ecx
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0xa28]
push eax
call fcn.004016b0
add esp, 0x10
cmp byte [esi + 0xa28], 4
je 0x41e18e
cmp byte [esi + 0xa28], 4
jne 0x41f247
bt dword [esi + 8], 0xb
jb 0x41e1fe
mov edx, dword [esi + 0x68]
mov al, 1
lea ecx, [esi + 0xa28]
mov byte [esi + 0x3e], al
mov byte [esi + 0x3f], al
push dword [esi + 0xdc]
call fcn.004a975b
pop eax
mov al, 1
lea ecx, [esi + 0xf0]
lea edx, [esi + 0xa28]
mov byte [esi + 0x3e], al
mov byte [esi + 0x3f], al
call fcn.005008b0
xor eax, eax
lea ecx, [esi + 0x950]
lea edx, [esi + 0x170]
mov dword [esi + 0x74], 0
mov byte [esi + 0x52], 1
mov dword [esi + 0x2a38], 0x29
mov byte [esi + 0x50], al
mov byte [esi + 0x51], al
call fcn.005008b0
jmp 0x41e27e
mov edx, dword [esi + 0x68]
mov al, 1
lea ecx, [esi + 0xa28]
mov byte [esi + 0x3e], al
mov byte [esi + 0x3f], al
push dword [esi + 0xdc]
call fcn.004204b0
pop eax
mov al, 1
lea ecx, [esi + 0xf0]
lea edx, [esi + 0xa28]
mov byte [esi + 0x3e], al
mov byte [esi + 0x3f], al
call fcn.00438baa
mov edx, dword [esi + 0x6c]
mov al, 1
mov byte [esi + 0x51], 0
mov dword [esi + 0x2a38], 0x29
lea ecx, [esi + 0xa28]
mov byte [esi + 0x50], al
mov byte [esi + 0x52], al
push dword [esi + 0x74]
call fcn.004204b0
pop eax
mov al, 1
lea ecx, [esi + 0x950]
lea edx, [esi + 0xa28]
mov byte [esi + 0x51], 0
mov byte [esi + 0x50], al
mov byte [esi + 0x52], al
call fcn.00438baa
mov al, 1
mov dword [esi + 0x74], eax
mov edx, dword [esi + 0x10]
mov cl, 4
cmp dh, 3
sete al
sub cl, al
test dh, dh
mov edx, 0
movzx eax, cl
cmove eax, edx
cmp word [esi + 0x18], 0x63
je 0x41e2be
movzx edx, word [esi + 0x18]
cmp edx, 8
je 0x41e2c4
cmp edx, 0xc
je 0x41e2c9
cmp edx, 0x5d
je 0x41e2cf
mov cx, 5
test edx, edx
jne 0x41e2d3
xor ecx, ecx
jmp 0x41e2d3
mov cx, 3
jmp 0x41e2d3
xor ecx, ecx
inc ecx
jmp 0x41e2d3
mov cx, 2
jmp 0x41e2d3
mov cx, 4
mov edx, dword [esi + 0xf8]
lea edi, [esi + 0xa38]
movq xmm0, qword [esi + 0xf0]
movsd xmm1, qword [esi + 0xc8]
lea ebx, [esi + 0xa78]
movsd xmm2, qword [esi + 0x150]
inc dword [esi + 0x98]
and dword [esi + 0x7e4], 0
and dword [esi + 0x7e0], 0
mov dword [esi + 0x7e8], ebx
mov dword [edi + 0x30], edx
mov edx, dword [esi + 0xd0]
movq qword [edi + 0x28], xmm0
movsd qword [edi + 0x34], xmm1
movq xmm1, qword [esi + 0x950]
mov dword [edi + 0x3c], edx
mov edx, dword [esi + 0x158]
movsd qword [ebx], xmm2
mov dword [ebx + 8], edx
mov edx, dword [esi + 0x958]
movq qword [edi + 0x4c], xmm1
mov dword [edi + 0x54], edx
mov byte [esi + 0xaa1], al
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x120]
mov dword [esi + 0x10], 0
mov byte [esi + 0xaa2], al
mov eax, edx
and al, 1
mov byte [esi + 0xa9e], al
mov eax, edx
mov edx, dword [esi + 0x140]
shr al, 3
and al, 1
mov byte [esi + 0xa9f], al
mov eax, dword [esi + 0x18]
mov word [esi + 0xa90], cx
mov word [esi + 0xa92], ax
movzx eax, dx
shr edx, 5
and dword [esi + 0xa28], 0
mov ecx, eax
and edx, 0x3f
add cl, al
shl edx, 8
shr eax, 0xb
and cl, 0x3e
movzx ecx, cl
shl ecx, 0x10
or edx, ecx
movzx ecx, di
or edx, eax
mov eax, edi
and edi, 0x1f
shr ecx, 9
shr eax, 5
shl edi, 0x18
add ecx, 0x7bc
mov dword [esi + 0xa34], edx
mov edx, dword [esi + 0x58]
and eax, 0xf
shl eax, 0x10
or eax, edi
or eax, ecx
mov ecx, dword [esi + 0x80]
mov dword [esi + 0xa30], eax
mov dword [esi + 0xa94], ecx
mov ecx, dword [esi + 0x70]
mov dword [esi + 0xa38], edx
mov edx, dword [esi + 0xac]
and dword [esi + 0xa3c], 0
and dword [esi + 0xa44], 0
mov dword [esi + 0xa40], ecx
mov ecx, dword [esi + 0x84]
mov dword [esi + 0xa48], edx
mov edx, dword [esi + 0x1c]
and dword [esi + 0xa4c], 0
mov dword [esi + 0xa54], ecx
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0xa50], edx
and dword [esi + 0xa5c], 0
and dword [esi + 0xa58], 0
mov dword [esi + 0xa98], ecx
mov byte [esi + 0xaa0], 0
mov byte [esi + 0xa9d], 2
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xa80], eax
jbe 0x41e860
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov dword [esi + 0x2a38], 0x2a
call fcn.00500bb8
cmp byte [esi + 0x390], 4
jne 0x41e4a9
movzx eax, word [esi + 0x392]
jmp 0x41e4bd
mov ecx, dword [esi + 0x390]
mov eax, ecx
cmp cl, 4
jne 0x41e81d
shr eax, 0x10
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov dword [esi + 0x10], eax
call fcn.00500bb8
cmp byte [esi + 0x390], 4
jne 0x41e4e3
movzx eax, word [esi + 0x392]
jmp 0x41e4f7
mov ecx, dword [esi + 0x390]
mov eax, ecx
cmp cl, 4
jne 0x41e81d
shr eax, 0x10
cmp word [esi + 0x10], 1
mov dword [esi + 0x18], eax
je 0x41e545
movzx eax, word [esi + 0x10]
cmp eax, 0x9901
jne 0x41e5a9
cmp word [esi + 0x18], 7
jne 0x41eef5
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
call fcn.00500bb8
cmp byte [esi + 0x390], 4
jne 0x41e68e
movzx eax, word [esi + 0x392]
jmp 0x41e6a2
mov eax, dword [esi + 0xa40]
not eax
or eax, dword [esi + 0xa44]
jne 0x41e5bc
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov byte [esi + 0xaa0], 1
call fcn.00500c01
cmp dword [esi + 0x390], 0
jne 0x41e836
movzx edx, word [esi + 0x18]
mov ecx, dword [esi + 0x39c]
mov eax, dword [esi + 0x398]
mov dword [esi + 0xa44], ecx
add edx, 0xfffffff8
mov ecx, 0
mov dword [esi + 0xa40], eax
adc ecx, 0xffffffff
mov dword [esi + 0x10], edx
mov dword [esi + 0x18], ecx
jmp 0x41e5ca
movzx eax, word [esi + 0x18]
mov dword [esi + 0x18], 0
mov dword [esi + 0x10], eax
jmp 0x41e66d
movzx eax, word [esi + 0x18]
mov dword [esi + 0x18], 0
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xa38]
not eax
or eax, dword [esi + 0xa3c]
jne 0x41e61f
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov byte [esi + 0xaa0], 1
call fcn.00500c01
cmp dword [esi + 0x390], 0
jne 0x41e836
add dword [esi + 0x10], 0xfffffff8
mov eax, dword [esi + 0x398]
mov ecx, dword [esi + 0x39c]
adc dword [esi + 0x18], 0xffffffff
mov dword [esi + 0xa3c], ecx
mov dword [esi + 0xa38], eax
mov eax, dword [esi + 0xa48]
not eax
or eax, dword [esi + 0xa4c]
jne 0x41e66d
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
call fcn.00500c01
cmp dword [esi + 0x390], 0
jne 0x41e836
add dword [esi + 0x10], 0xfffffff8
mov eax, dword [esi + 0x398]
mov ecx, dword [esi + 0x39c]
adc dword [esi + 0x18], 0xffffffff
mov dword [esi + 0xa4c], ecx
mov dword [esi + 0xa48], eax
mov eax, dword [esi + 0x10]
neg eax
mov eax, 0
sbb eax, dword [esi + 0x18]
jl 0x41e7ec
mov eax, dword [esi + 0x7e0]
mov dword [esi + 0x10], eax
jmp 0x41e46d
mov ecx, dword [esi + 0x390]
mov eax, ecx
cmp cl, 4
jne 0x41e81d
shr eax, 0x10
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov dword [esi + 0x10], eax
call fcn.00500bb8
cmp byte [esi + 0x390], 4
jne 0x41e6c8
movzx eax, word [esi + 0x392]
jmp 0x41e6dc
mov ecx, dword [esi + 0x390]
mov eax, ecx
cmp cl, 4
jne 0x41e81d
shr eax, 0x10
mov dword [esi + 0x18], eax
mov byte [esi + 0x118], 0
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
push 1
lea eax, [esi + 0x118]
push eax
call fcn.00500826
pop eax
pop ecx
cmp byte [esi + 0x390], 4
je 0x41e719
mov eax, dword [esi + 0x390]
cmp al, 4
jne 0x41e81d
mov al, byte [esi + 0x118]
lea ecx, [esi + 0x390]
lea edx, [esi + 0x7e0]
mov byte [esi + 0x1c], al
call fcn.00500bb8
cmp byte [esi + 0x390], 4
jne 0x41e745
movzx eax, word [esi + 0x392]
jmp 0x41e756
mov eax, dword [esi + 0x390]
cmp al, 4
jne 0x41e81d
shr eax, 0x10
cmp word [esi + 0x18], 0x4541
jne 0x41ef01
cmp word [esi + 0x10], 1
je 0x41e77a
movzx ecx, word [esi + 0x10]
cmp ecx, 2
jne 0x41f054
mov cl, 1
jmp 0x41e77c
xor ecx, ecx
mov dh, byte [esi + 0x1c]
dec dh
cmp dh, 2
ja 0x41ef0f
cmp ax, 0x63
mov byte [esi + 0xa9c], dh
mov dl, dh
mov byte [esi + 0xa9d], cl
je 0x41e7bc
movzx edx, ax
cmp edx, 8
je 0x41e7c2
cmp edx, 0xc
je 0x41e7c7
cmp edx, 0x5d
je 0x41e7cd
mov cx, 5
test edx, edx
jne 0x41e7d1
xor ecx, ecx
jmp 0x41e7d1
mov cx, 3
jmp 0x41e7d1
xor ecx, ecx
inc ecx
jmp 0x41e7d1
mov cx, 2
jmp 0x41e7d1
mov cx, 4
mov word [esi + 0xa90], cx
mov word [esi + 0xa92], ax
mov dword [esi + 0x18], 0
push 7
pop eax
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
add eax, dword [esi + 0x7e0]
adc ecx, dword [esi + 0x7e4]
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], ecx
jb 0x41e825
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x7e0], eax
mov dword [esi + 0x7e4], ecx
jmp 0x41e46d
mov ecx, dword [esi + 0x394]
jmp 0x41e842
and dword [esi + 0x6f8], 0
push 2
pop eax
mov ecx, 0x5a8898
jmp 0x41e849
mov eax, dword [esi + 0x394]
mov ecx, dword [esi + 0x398]
and dword [esi + 0x6f8], 0
mov dword [esi + 0x700], ecx
lea ecx, [esi + 0x6f8]
mov dword [esi + 0x6fc], eax
call fcn.00405053
cmp word [esi + 0xa90], 3
jne 0x41e877
cmp byte [esi + 0xa9d], 2
je 0x41f12c
mov eax, dword [esi + 0xa48]
mov ecx, dword [esi + 0xa4c]
mov dword [esi + 0x394], 0x52a7fd
mov dword [esi + 0x398], 0x1b
mov dword [esi + 0x390], 1
add eax, dword [esi + 0x60]
adc ecx, dword [esi + 0x40]
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], ecx
jb 0x41f148
lea ecx, [esi + 0x390]
mov dword [esi + 0x2a38], 0x2a
call fcn.00405053
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa48], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xa4c], eax
mov eax, dword [esi + 0xa2c]
mov edi, dword [esi + 0xa28]
mov ebx, dword [esi + 0xa34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xa30]
mov dword [esi + 0x10], eax
push 0x70
lea eax, [esi + 0xa38]
push eax
lea eax, [esi + 0x488]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
bt dword [esi + 8], 0xb
jae 0x41e925
mov ecx, dword [esi + 0x170]
mov edx, dword [esi + 0x6c]
call fcn.00466c68
cmp edi, 2
je 0x41f15a
push 0x70
lea eax, [esi + 0x488]
push eax
lea eax, [esi + 0x8e0]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x18]
mov dword [esi + 0x8d0], edi
mov byte [esi + 0x5f], 1
mov dword [esi + 0x2a38], 0x23
lea ecx, [esi + 0x164]
mov dword [esi + 0x8d4], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x8d8], eax
mov dword [esi + 0x8dc], ebx
mov eax, dword [esi + 0x910]
mov edx, dword [esi + 0x90c]
push eax
call fcn.00420bf0
pop eax
mov edi, dword [esi + 0x16c]
mov ecx, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x168]
mov dword [esi + 0x1c], edi
push edi
mov dword [esi + 8], eax
push eax
push dword [esi + 0x1b4]
push dword [esi + 0x1b0]
call fcn.004afca9
add esp, 0x10
cmp dword [esi + 0x1a0], 0
mov dword [esi + 0x80], eax
jne 0x41e9e9
lea ecx, [esi + 0x198]
lea edx, [esi + 0x1a8]
mov dword [esi + 0x2a38], 0x25
call fcn.00526310
mov eax, dword [esi + 0x198]
mov edi, dword [esi + 0x19c]
mov dword [esi + 0x58], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x18], edi
and edi, eax
shr eax, 0x19
movd xmm0, eax
mov dword [esi + 0x80], eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esi + 0x120], xmm0
mov eax, dword [esi + 0x10]
movdqa xmm0, xmmword [esi + 0x120]
movdqu xmm1, xmmword [eax + edi]
pcmpeqb xmm0, xmm1
movdqa xmmword [esi + 0x140], xmm1
pmovmskb eax, xmm0
mov word [esi + 0xa28], ax
lea ecx, [esi + 0xa28]
call fcn.0040853e
test eax, eax
je 0x41ea93
add edx, edi
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
and edx, dword [esi + 0x18]
shl edx, 4
sub ebx, edx
mov edx, dword [esi + 0x1c]
push dword [ebx - 8]
push dword [ebx - 0xc]
call fcn.004558cb
pop ecx
pop edx
test al, al
je 0x41ea5e
jmp 0x41eaef
cmp dword [esi + 0x84], 1
mov eax, 1
mov dword [esi + 0x84], eax
je 0x41eac2
mov ecx, dword [esi + 0x18]
movdqa xmm0, xmmword [esi + 0x140]
mov edx, edi
call fcn.00408786
mov dword [esi + 0x84], eax
mov dword [esi + 0x70], edx
movdqa xmm1, xmmword [esi + 0x140]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x41eb55
mov eax, dword [esi + 0x58]
lea edi, [eax + edi + 0x10]
add eax, 0x10
and edi, dword [esi + 0x18]
mov dword [esi + 0x58], eax
jmp 0x41ea37
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 8]
mov dword [ebx - 4], eax
mov ecx, dword [esi + 0x164]
call fcn.00466c68
mov eax, dword [esi + 0x48]
cmp eax, dword [esi + 0x9c]
jne 0x41eb23
lea ecx, [esi + 0x9c]
mov dword [esi + 0x2a38], 0x24
call fcn.00407241
mov edi, dword [esi + 0x48]
mov eax, edi
shl eax, 7
add eax, dword [esi + 0xa0]
push 0x80
lea ecx, [esi + 0x8d0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
inc edi
mov dword [esi + 0x48], edi
mov dword [esi + 0xa4], edi
jmp 0x41dbdc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x70]
mov al, byte [eax + ecx]
test al, al
js 0x41eb76
mov ecx, dword [esi + 0x10]
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
bsf eax, eax
mov dword [esi + 0x70], eax
mov al, byte [ecx + eax]
mov edi, dword [esi + 0x70]
mov ecx, dword [esi + 0x18]
and al, 1
mov edx, dword [esi + 0x10]
movzx eax, al
sub dword [esi + 0x1a0], eax
lea eax, [edi - 0x10]
and ecx, eax
mov eax, dword [esi + 0x80]
mov byte [edx + edi], al
mov byte [edx + ecx + 0x10], al
shl edi, 4
mov eax, edx
inc dword [esi + 0x1a4]
mov ecx, dword [esi + 0x16c]
sub eax, edi
neg edi
mov dword [eax - 8], ecx
mov ecx, dword [esi + 0x48]
movq xmm0, qword [esi + 0x164]
movq qword [eax - 0x10], xmm0
mov dword [edx + edi - 4], ecx
jmp 0x41eb03
mov eax, dword [esi + 0x488]
mov ecx, dword [esi + 0x48c]
cmp al, 4
mov dword [esi + 8], ecx
jne 0x41ec0e
lea ecx, [esi + 0x488]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085e8
cmp dword [esi + 0x488], 0
je 0x41ecbb
mov eax, dword [esi + 0x48c]
mov ecx, dword [esi + 0x490]
mov dword [esi + 8], ecx
mov edi, dword [esi + 8]
mov dword [esi + 0xc], 0
mov ebx, eax
jmp 0x41f0fe
mov dword [esi + 8], ecx
mov dword [esi + 0x88], 0
jmp 0x41d996
mov dword [esi + 8], eax
mov eax, dword [esi + 0x29c]
jmp 0x41d737
mov eax, dword [esi + 0x29c]
mov dword [esi + 0x88], 0
mov dword [esi + 8], edx
jmp 0x41d996
lea ecx, [esi + 0x488]
mov byte [esi + 0x16], 0
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov dword [esi + 0x20], edx
lea edx, [esi + 0x34]
mov dword [esi + 0x48], eax
call fcn.004085a4
cmp byte [esi + 0x488], 4
je 0x41ecf0
mov eax, dword [esi + 0x488]
cmp al, 4
jne 0x41edd4
movzx eax, word [esi + 0x1c]
cmp dword [esi + 8], eax
sete al
or byte [esi + 0x30], al
je 0x41d55e
mov eax, dword [esi + 0x18]
mov dword [esi + 0xa2c], 0x52a872
mov dword [esi + 0xa30], 0x2f
mov dword [esi + 0xa28], 1
sub eax, 0x3c
sbb dword [esi + 0x10], 0
mov dword [esi + 8], eax
jae 0x41edf8
xor eax, eax
mov ebx, 0x52a872
inc eax
mov dword [esi + 0xc], eax
push 0x2f
jmp 0x41d6d6
mov ecx, 0x52bd40
call fcn.00526c90
and dword [esi + 0x2a38], 0
mov ecx, 0x52bd50
call fcn.00526c90
jmp 0x41f455
movq xmm0, qword [esi + 0x488]
mov dword [esi + 0x2a38], 3
movq qword [esi + 0xa28], xmm0
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x52bd60
push 0x52aa10
lea eax, [esi + 0xa28]
push eax
call fcn.00526c20
add esp, 0xc
jmp 0x41f455
mov dword [esi + 0x10], 0x80000001
jmp 0x41d9cc
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], ecx
jmp 0x41f0c7
mov ecx, dword [esi + 0x48c]
jmp 0x41ec0b
mov ecx, edx
mov edx, eax
push 0x5a8f1c
push edi
push 0
call fcn.00526e00
add esp, 0xc
jmp 0x41f455
lea ecx, [esi + 0xa28]
mov byte [esi + 0x16], 0
call fcn.00405053
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x60], eax
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
cmp eax, dword [esi + 0x60]
sbb ecx, dword [esi + 0x40]
jb 0x41f138
mov edx, dword [esi + 0x8c]
lea ecx, [esi + 0xa28]
push dword [esi + 0x40]
push dword [esi + 0x60]
push 0
push 0
call fcn.004d4a80
add esp, 0x10
xor eax, eax
cmp dword [esi + 0xa28], eax
jne 0x41f1b5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41ee74
mov eax, dword [esi + 0xa2c]
jmp 0x41ee89
mov ecx, dword [esi + 0xa28]
mov eax, dword [esi + 0xa2c]
cmp cl, 4
jne 0x41f267
cmp eax, 0x6064b50
je 0x41f18a
add dword [esi + 0x60], 1
adc dword [esi + 0x40], 0
jmp 0x41ee13
mov dword [esi + 0x10], 0x5a8e07
jmp 0x41f06d
mov dword [esi + 0x10], 0x5a8df5
push 0x12
jmp 0x41f05d
mov dword [esi + 0x10], str.Invalid_AES_encryption_strengthInvalid_AES_vendor_versionInvalid_AES_vendorAES_extra_data_field_has_an_unsupported_lengthInvalid_reader_state
push 0x1f
jmp 0x41f05d
mov eax, dword [esi + 0xa28]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xa2c]
jmp 0x41f03f
mov eax, dword [esi + 0xa28]
or dword [esi + 0x2a38], 0xffffffff
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xa2c]
mov dword [esi + 8], eax
push dword [esi + 0x8c]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esi + 0x10], 0x80000000
jmp 0x41d9cc
mov eax, dword [esi + 0xa4]
movq xmm0, qword [esi + 0x9c]
movsd xmm1, qword [esi + 0x1a0]
movsd xmm2, qword [esi + 0x198]
mov dword [esi + 0xa60], eax
movq qword [esi + 0xa58], xmm0
movsd qword [esi + 0xa38], xmm1
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0xa30], xmm2
movsd xmm2, qword [esi + 0x1b0]
mov eax, dword [esi + 0x2a0]
movsd qword [esi + 0xa40], xmm1
movq xmm1, qword [esi + 0x298]
movsd qword [esi + 0xa48], xmm2
mov dword [esi + 0xa6c], eax
xor eax, eax
inc eax
movq qword [esi + 0xa64], xmm1
mov dword [esi + 0xa28], eax
mov dword [esi + 0xa2c], eax
mov eax, dword [esi + 0x60]
mov dword [esi + 0xa50], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0xa54], eax
push 0x48
pop ecx
call fcn.0040722a
test eax, eax
je 0x41f440
mov ebx, eax
push 0x48
lea eax, [esi + 0xa28]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x298]
mov dword [esi + 0x2c], eax
jmp 0x41b738
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xa30]
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], 0
jmp 0x41f0ca
mov dword [esi + 0x10], 0x52a7dd
jmp 0x41f0ca
mov dword [esi + 0x10], 0x5a8ddb
push 0x1a
pop eax
mov dword [esi + 0x90], eax
xor eax, eax
inc eax
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
mov dword [esi + 0xc], eax
mov dword [esi + 0x78], ecx
lea ecx, [esi + 0xa28]
call fcn.004050d9
bt dword [esi + 8], 0xb
mov bl, 1
jae 0x41f0c4
mov ecx, dword [esi + 0x170]
mov edx, dword [esi + 0x6c]
call fcn.00466c68
test bl, bl
jne 0x41f0c4
mov ecx, dword [esi + 0x150]
mov edx, dword [esi + 0xd8]
call fcn.00466c68
mov ecx, dword [esi + 0xc8]
mov edx, dword [esi + 0x68]
call fcn.00466c68
mov eax, dword [esi + 0x78]
mov dword [esi + 0x20], eax
mov dword [esi + 0x2a38], 0x20
lea ecx, [esi + 0x198]
call fcn.00406788
lea ecx, [esi + 0x9c]
mov byte [esi + 0x16], 0
mov dword [esi + 0x2a38], 0x20
call fcn.00405c54
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x298]
mov edx, dword [esi + 0x29c]
call fcn.00466c68
mov dword [esi + 0x2a38], 4
mov dword [esi + 0x2c], edi
mov dword [esi + 8], ebx
jmp 0x41b70d
mov dword [esi + 0xc], eax
jmp 0x41d5e0
mov dword [esi + 0x10], 0x52a818
jmp 0x41f07f
mov ebx, 0x52a97e
push 0x2a
pop edi
xor eax, eax
inc eax
mov dword [esi + 0xc], eax
jmp 0x41f0fe
push 0x1b
pop eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x10], 0x52a7fd
jmp 0x41f07f
mov eax, dword [esi + 0x18]
mov dword [esi + 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x41f0ca
mov byte [esi + 0x53], 1
call fcn.00420080
jmp 0x41f455
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov byte [esi + 0x53], 1
inc ecx
call fcn.00526660
jmp 0x41f455
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x20]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
sub dword [esi + 0x60], eax
sbb dword [esi + 0x40], ecx
lea ecx, [esi + 0xa28]
call fcn.004085e8
cmp dword [esi + 0xa28], 0
je 0x41f277
mov ebx, dword [esi + 0xa2c]
mov edi, dword [esi + 0xa30]
mov dword [esi + 0xc], 0
jmp 0x41f0fe
mov dword [esi + 0xc], 0
jmp 0x41f0c7
mov ecx, dword [esi + 0x80]
jmp 0x41f1f9
mov ecx, dword [esi + 0x58]
jmp 0x41f1f9
mov ecx, dword [esi + 0x70]
jmp 0x41f1f9
mov ecx, dword [esi + 0xb0]
jmp 0x41f1f9
mov ecx, dword [esi + 0xac]
mov dword [esi + 0xc], 0
mov dword [esi + 0x20], ecx
mov dword [esi + 0x10], eax
jmp 0x41f0ca
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
mov dword [esi + 0x78], ecx
jmp 0x41f0b6
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
mov dword [esi + 0x78], ecx
jmp 0x41f0a5
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
mov dword [esi + 0xc], 0
xor ebx, ebx
mov dword [esi + 0x10], eax
mov dword [esi + 0x78], ecx
jmp 0x41f093
mov dword [esi + 0xc], 0
mov edi, eax
mov ebx, ecx
jmp 0x41f0fe
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.0040855a
cmp byte [esi + 0xa28], 4
je 0x41f29b
cmp byte [esi + 0xa28], 4
jne 0x41f2e5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.0040855a
cmp byte [esi + 0xa28], 4
je 0x41f2bf
cmp byte [esi + 0xa28], 4
jne 0x41f2e5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41f2f6
mov eax, dword [esi + 0xa2c]
mov dword [esi + 0x10], eax
jmp 0x41f30d
mov ebx, dword [esi + 0xa28]
mov edi, dword [esi + 0xa2c]
jmp 0x41f1c1
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 0x10], ecx
jne 0x41f424
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085a4
cmp byte [esi + 0xa28], 4
jne 0x41f333
mov eax, dword [esi + 0xa2c]
mov dword [esi + 8], eax
jmp 0x41f34a
mov eax, dword [esi + 0xa28]
mov ecx, dword [esi + 0xa2c]
cmp al, 4
mov dword [esi + 8], ecx
jne 0x41ec0e
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085e8
cmp dword [esi + 0xa28], 0
jne 0x41f1b5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085e8
cmp dword [esi + 0xa28], 0
jne 0x41f1b5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
mov eax, dword [ecx + 8]
mov dword [esi + 0x30], eax
call fcn.004085e8
cmp dword [esi + 0xa28], 0
jne 0x41f1b5
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x34]
mov byte [esi + 0x16], 0
call fcn.004085e8
cmp dword [esi + 0xa28], 0
jne 0x41f1b5
mov eax, dword [esi + 8]
cmp dword [esi + 0x10], eax
push 0x2f
pop edi
mov ebx, 0x52a843
jne 0x41f0fe
mov eax, dword [esi + 0xa30]
mov ecx, dword [esi + 0xa34]
mov dword [esi + 0xa2c], 0x52a8a1
mov dword [esi + 0xa30], 0x28
mov dword [esi + 0xa28], 1
add eax, dword [esi + 0x60]
adc ecx, dword [esi + 0x40]
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
jae 0x41f42c
mov ebx, 0x52a8a1
push 0x28
jmp 0x41f13f
mov edi, dword [esi + 0x10]
jmp 0x41ec11
lea ecx, [esi + 0xa28]
mov byte [esi + 0x16], 0
call fcn.00405053
jmp 0x41d7af
mov dword [esi + 0x2a38], 0x2b
push 8
pop ecx
push 0x48
pop edx
call fcn.00526680
ud2