Function at 0x4083b0
Capabilities:
Encrypt data using chaskey

Disassembly:
dec esp
dec edi
add byte [ecx + 0x1ca1c0ef], al
mov byte [0x4ce50d01], al
dec edi
add bh, dh
fild word [ebx]
int1
sub dword [0x4f4da4], edi
mov dword [0x4f4dbc], ecx
inc edi
or esi, dword [0x4f4eda]
add ebx, edx
call fcn.004772bd
xor edi, 0x3209b37f
add eax, 0xb9cd1b26
ror eax, 0x13
add esi, 0xcd1eb8bd
dec ecx
sub dword [0x4f4c6f], edx
ror edx, 0xb
add ecx, dword [0x4f4f23]
xchg edx, esi
xchg edx, esi
rol edx, 0xb
or dword [0x4f4ca0], ecx
inc ecx
sub esi, 0xcd1eb8bd
rol eax, 0x13
sub eax, 0xb9cd1b26
xor edi, 0x3209b37f
sub ebx, edx
dec edi
xor dword [0x4f4d71], edx
sub dword [0x4f4c56], ebx
sub esi, ecx
neg edi
push edi
and dword [0x4f4c5c], edx
xor edx, ebp
inc edi
sub ecx, dword [0x4f4e31]
dec edx
add edi, dword [0x4f4ecc]
call fcn.004712ae
xor esi, 0xcedf7092
or ebx, dword [0x4f4ead]
inc edx
neg esi
xor esi, ecx
xor ecx, 0xa3bff9c5
add eax, 0xe544e174
dec ebx
or ecx, dword [0x4f4e8b]
call fcn.0041e52e
neg esi
xor eax, dword [0x4f4f05]
xor edi, 0xe3ebeffc
add dword [0x4f4d5d], ecx
mov dword [0x4f4ca7], edx
xor edi, 0xe3ebeffc
neg esi
call fcn.0049524e
inc ebx
sub eax, 0xe544e174
xor ecx, 0xa3bff9c5
xor esi, ecx
neg esi
dec edx
xor esi, 0xcedf7092
call fcn.00405ae7
inc edx
dec edi
xor edx, ebp
mov dword [0x4f4c9a], ecx
mov ebx, 0x4d471f27
xchg edx, esi
xor ebx, dword [0x4f4e1e]
call fcn.00442a10
xor ebx, 0x7b508424
and dword [0x4f4dd5], 0xd02fc2f7
sub dword [0x4f4d86], edx
dec esi
call fcn.004570e5
neg esi
call fcn.00442a10
xor ecx, 0x9566c156
not ebx
or edx, dword [0x4f4e81]
not ebx
xor ecx, 0x9566c156
neg esi
call fcn.00469c60
inc esi
and dword [0x4f4d4e], esi
xor ebx, 0x7b508424
call fcn.00441f7b
xchg edx, esi
add ebx, 0x12b568c1
xor ebx, 0xcf5099db
not edx
and dword [0x4f4c7c], ebx
dec ecx
add edi, 0x383df13d
and dword [0x4f4d22], ecx
inc ecx
call fcn.00450a59
xor edi, 0xefae42a1
rol ebx, 8
neg esi
dec eax
sub dword [0x4f4d32], eax
and dword [0x4f4d24], 0xbf248bfb
sub eax, dword [0x4f4ebf]
or dword [0x4f4d69], ebx
call fcn.0041e793
inc eax
dec ebx
ror ebx, 0x1a
inc edx
call fcn.004723b5
dec edx
rol ebx, 0x1a
inc ebx
dec eax
call fcn.00467179
sub dword [0x4f4cd8], 0x349c0574
inc eax
neg esi
ror ebx, 8
xor edi, 0xefae42a1
call fcn.0043aea9
dec ecx
mov dword [0x4f4d4d], edx
sub edi, 0x383df13d
inc ecx
xor dword [0x4f4c54], esi
not edx
xor ebx, 0xcf5099db
xor ebx, 0x5f92879a
xor eax, 0xb7c0dfc2
xor dword [0x4f4d7e], ebx
jle 0x4083ff
dec edi
add al, ch
cmp dword [edx + 0xd2b0002], edx
add eax, 0x87004f4f
test dword [ebx], 0x4f4fa305
add al, ch
add al, 0x7a
add dword [eax], eax
or dword [0x4f4dfb], 0xf542ad73
sub edx, dword [0x4f4f87]
neg edi
rol esi, 0xc
xchg ebx, eax
neg ecx
xor dword [0x4f4db6], edi
call fcn.00404db2
rol edx, 0x1f
xor edi, esi
ror esi, 0x18
xor eax, dword [0x4f4f28]
call fcn.0043ac6a
rol esi, 0x18
xor edi, esi
ror edx, 0x1f
call fcn.0047d358
neg ecx
xchg ebx, eax
ror esi, 0xc
neg edi
xchg edi, esi
call fcn.00484553
or dword [0x4f4dfb], eax
xor eax, 0xb7c0dfc2
push ebx
neg edi
sub dword [0x4f4cde], eax
and dword [0x4f4ce4], 0x79bc6184
rol ecx, 0x1a
xor ecx, 0x8eac7ace
xchg edi, edx
xor ecx, 0x2923555e
xchg ecx, edx
mov dword [0x4f4d3d], ebx
add esi, dword [0x4f4f9b]
sub esi, ecx
sub eax, dword [0x4f4e59]
add esi, ecx
xor dword [0x4f4d3e], ebx
xchg ecx, edx
xor ecx, 0x2923555e
xchg edi, edx
xor ecx, 0x8eac7ace
ror ecx, 0x1a
and dword [0x4f4d4b], 0xad40dd0c
or dword [0x4f4c7a], ebx
neg edi
mov ebx, 0x884720da
rol ebx, 0xc
add ecx, 0x51a8f863
rol ebx, 8
xor esi, dword [0x4f4fb7]
and dword [0x4f4de7], 0x4d257314
call fcn.004802a2
xor eax, dword [0x4f4ead]
neg esi
add ebx, dword [0x4f4ec3]
xor esi, 0xe9185a1a
ror edi, 0x16
inc ecx
not edi
add edi, dword [0x4f4e83]
mov dword [0x4f4c71], edx
sub dword [0x4f4db1], edx
not edi
dec ecx
rol edi, 0x16
xor esi, 0xe9185a1a
neg esi
and dword [0x4f4dc5], 0x1eb2db2c
ror ebx, 8
sub ecx, 0x51a8f863
ror ebx, 0xc
and ebx, 0xdf75878c
xchg ecx, edx
sub eax, dword [0x4f4e11]
xor esi, dword [0x4f4fbd]
or dword [0x4f4c8c], ecx
xor eax, 0x34e897cc
call fcn.00473dc5
inc ecx
neg esi
sub edi, dword [0x4f4fa2]
xor edx, dword [0x4f4e6a]
sub ecx, dword [0x4f4ecc]
inc ecx
dec edx
xor ebx, ecx
not ecx
call fcn.00479183
call fcn.0045905e
not ecx
xor ebx, ecx
inc edx
dec ecx
neg esi
dec ecx
call fcn.0042b910
xor eax, 0x34e897cc
or dword [0x4f4ddf], edi
xchg ecx, edx
sub ebx, 0x87e0001d
sub eax, dword [0x4f4e0f]
rol edi, 7
inc edi
add eax, 0xcc7d7397
inc edx
ror ebx, 0x16
xor esi, 0x5f6701fb
xor esi, 0x94fd0f06
xor edi, 0x93562edc
rol eax, 0x1f
call fcn.00480430
call fcn.0041db48
ror eax, 0x1f
xor edi, 0x93562edc
xor esi, 0x94fd0f06
xor esi, 0x5f6701fb
rol ebx, 0x16
dec edx
sub eax, 0xcc7d7397
dec edi
ror edi, 7
push ebx
xchg ecx, edx
call fcn.0044accf
sub edx, 0xdb7d7645
mov dword [0x4f4da0], 0x735594b2
inc esi
and dword [0x4f4d84], eax
sub edi, 0x80b3f941
call fcn.0041fdd0
xchg ebx, esi
not ebx
inc eax
call fcn.00485542
add edi, dword [0x4f4f05]
rol edi, 0x16
call fcn.00465d74
call fcn.00483d2c
ror edi, 0x16
call fcn.0049925a
dec eax
not ebx
xchg ebx, esi
add edi, 0x80b3f941
mov dword [0x4f4d9a], eax
dec esi
sub dword [0x4f4cbb], 0x9361068d
add edx, 0xdb7d7645
xchg ecx, edx
push esp
dec edx
or ecx, dword [0x4f4eb5]
and dword [0x4f4df7], edi
xchg edx, esi
neg esi
xchg ebx, eax
add ecx, dword [0x4f4e19]
sub ebx, 0x87da2976
dec edx
add ebx, 0x6aabdb7e
xchg edi, esi
sub ecx, dword [0x4f4e2a]
sub edx, esi
add esi, dword [0x4f4ea4]
or esi, dword [0x4f4f64]
dec ecx
add ecx, dword [0x4f4f25]
add ebx, dword [0x4f4f1e]
call fcn.004866ba
call fcn.00453c90
call fcn.004652c6
call fcn.004183d0
inc ecx
add edx, esi
xchg edi, esi
sub ebx, 0x6aabdb7e
inc edx
add ebx, 0x87da2976
xchg ebx, eax
neg esi
xchg edx, esi
or dword [0x4f4c95], esi
inc edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
dec ebx
add dword [0x4f4dc1], edx
xor esi, dword [0x4f4e35]
or edx, dword [0x4f4f8c]
xor eax, ebp
or edi, dword [0x4f4ee6]
call fcn.0049132e
xor ecx, dword [0x4f4ed9]
add dword [0x4f4d63], ecx
call fcn.004469f5
xor esi, edi
add edx, dword [0x4f4ee0]
xor ecx, edi
xor edx, eax
sub ebx, 0x1f9ab6f1
sub ecx, 0x194ee38b
add ecx, 0x194ee38b
add ebx, 0x1f9ab6f1
xor edx, eax
xor ecx, edi
xor esi, edi
and dword [0x4f4dbe], edi
call fcn.004556ae
xor eax, ebp
add dword [0x4f4d23], ebx
inc ebx
add esp, 0x14
call fcn.00468b0f
add dword [0x4f4d48], eax
neg edx
call fcn.00406f42
rol edi, 0x10
inc edx
dec ecx
add ecx, edx
or dword [0x4f4c9d], ebx
xor edx, eax
dec edx
ror edx, 2
sub esi, dword [0x4f4ec9]
xchg ecx, eax
rol ecx, 0x1b
sub esi, 0x5d4b8724
xor ebx, ebp
call fcn.0048c3ad
sub eax, dword [0x4f4f7a]
add esi, 0xbb66c75c
add edi, dword [0x4f4e71]
call fcn.00472d2f
call fcn.004538e6
sub esi, 0xbb66c75c
call fcn.0047c09c
xor ebx, ebp
add esi, 0x5d4b8724
ror ecx, 0x1b
xchg ecx, eax
rol edx, 2
inc edx
xor edx, eax
mov dword [0x4f4d2f], edx
sub ecx, edx
inc ecx
dec edx
ror edi, 0x10
call fcn.004356c5
neg edx
or dword [0x4f4dab], ecx
mov edx, 0xb754ffdf
sub eax, dword [0x4f4f7f]
sub dword [0x4f4c76], esi
dec edi
xor edx, eax
call fcn.004257b5
not esi
dec ecx
or eax, dword [0x4f4eea]
neg esi
dec esi
ror edx, 0xb
rol edx, 0xb
inc esi
neg esi
inc ecx
not esi
call fcn.0041aa63
xor edx, eax
inc edi
or edx, 0x7fac9973
neg esi
sub edi, 0x4c10098a
call fcn.004a13a1
add edi, 0xf772ef7f
xchg ecx, eax
xor dword [0x4f4d2c], edi
neg edx
xor dword [0x4f4d0d], esi
sub edi, ecx
xor esi, 0x5abde9dc
or dword [0x4f4c5b], esi
sub dword [0x4f4d0e], ecx
xor ecx, 0x58ad4094
neg esi
rol edi, 0x10
not esi
xor ecx, 0x1d72daf6
inc edi
add ecx, esi
or esi, dword [0x4f4f96]
call fcn.00437a38
sub ecx, esi
dec edi
xor ecx, 0x1d72daf6
not esi
ror edi, 0x10
neg esi
xor ecx, 0x58ad4094
add dword [0x4f4df0], ecx
xor esi, 0x5abde9dc
add edi, ecx
neg edx
mov dword [0x4f4c9e], esi
xchg ecx, eax
sub edi, 0xf772ef7f
call fcn.0046f6f9
add edi, 0x4c10098a
neg esi
sub edx, 0xfffcffff
xor dword [0x4f4dbb], edi
add eax, 0x6089af3c
dec edx
ror ebx, 9
sub edi, dword [0x4f4f4f]
xor ecx, 0x3d25783a
sub dword [0x4f4c6b], 0xb8ab8aa8
call fcn.0048cd35
or edx, dword [0x4f4f12]
inc eax
not esi
call fcn.00485c4d
add edx, dword [0x4f4e3b]
call fcn.00483a2a
call fcn.00413db7
not esi
dec eax
call fcn.00497dab
add dword [0x4f4d5a], 0x2b971484
xor ecx, 0x3d25783a
rol ebx, 9
inc edx
sub eax, 0x6089af3c
push edx
dec ecx
rol ebx, 0x15
and dword [0x4f4d6b], edi
xchg ecx, eax
mov dword [0x4f4caf], 0x11302983
xor dword [0x4f4c64], edx
dec edx
and dword [0x4f4d2b], edx
sub ebx, dword [0x4f4f11]
xor dword [0x4f4c8f], edx
call fcn.00442efd
call fcn.0046e90e
add dword [0x4f4cc7], ebx
inc edx
xor dword [0x4f4d38], ecx
xchg ecx, eax
ror ebx, 0x15
inc ecx
mov esi, 0x120fd17f
ror ebx, 1
neg ebx
sub ebx, edx
xchg edi, edx
neg esi
inc ebx
sub dword [0x4f4cf1], 0x8ae5bdae
xor eax, esp
rol esi, 0x1e
add ebx, dword [0x4f4f1e]
rol edi, 0x15
inc ebx
sub edi, dword [0x4f4f95]
sub dword [0x4f4c9d], edi
sub dword [0x4f4dd0], eax
sub dword [0x4f4cff], eax
mov dword [0x4f4df1], ecx
dec ebx
ror edi, 0x15
ror esi, 0x1e
xor eax, esp
add dword [0x4f4d3c], 0xbf0b0082
dec ebx
neg esi
xchg edi, edx
add ebx, edx
neg ebx
rol ebx, 1
xor esi, 0x7cff4313
call fcn.0047a25f
inc ebx
inc edi
add ebx, dword [0x4f4e49]
call fcn.00411de7
dec ecx
xor ecx, dword [0x4f4eb6]
sub esi, ecx
or ecx, dword [0x4f4fa5]
add edi, dword [0x4f4edc]
xor dword [0x4f4c3e], 0x1e3ad6a2
not edi
xchg edx, eax
or dword [0x4f4c9d], ecx
ror edx, 1
rol edx, 1
mov dword [0x4f4ca7], edx
xchg edx, eax
not edi
add esi, ecx
inc ecx
dec edi
dec ebx
add esi, 0xf47eda00
sub ecx, 0xd167ee10
dec eax
and dword [0x4f4c4d], edx
or eax, dword [0x4f4f3c]
neg ecx
add ebx, esp
call fcn.00407114
xor eax, esi
rol edi, 3
dec eax
add eax, dword [0x4f4e36]
and dword [0x4f4dbe], edi
sub edi, ecx
call fcn.00442a10
add edi, ecx
inc eax
ror edi, 3
xor eax, esi
sub ebx, esp
neg ecx
inc eax
add ecx, 0xd167ee10
push esi
xchg ecx, edx
call fcn.00412fa3
ror edi, 0x13
xchg esi, eax
or dword [0x4f4dbb], esi
sub ecx, 0xec305300
call fcn.00453762
add dword [0x4f4caa], 0xe37be70a
not edx
or eax, dword [0x4f4efa]
add eax, 0x4f4efa
neg esi
xor edx, dword [0x4f4e67]
ror ecx, 0xd
call fcn.0049bca4
or esi, dword [0x4f4f58]
mov dword [0x4f4d21], edi
call fcn.00451ca4
rol ecx, 0xd
neg esi
not edx
add ecx, 0xec305300
push ebx
xor ah, ch
or dword [0x4f4ca8], ecx
xchg esi, eax
rol edi, 0x13
call fcn.0046f7dd
xchg ecx, edx
mov ebx, 0xbad695ab
xchg ecx, esi
xor esi, 0x93a1fd82
inc eax
xor ecx, 0x8824865c
add edi, dword [0x4f4ebe]
xor edx, esi
call fcn.0045f26e
neg eax
sub eax, edi
xor dword [0x4f4d55], edi
ror ebx, 0xa
xor esi, eax
rol edx, 0x1b
sub dword [0x4f4cc0], ecx
dec eax
add dword [0x4f4ddf], edi
inc eax
sub dword [0x4f4ca9], esi
ror edx, 0x1b
xor esi, eax
rol ebx, 0xa
sub dword [0x4f4dca], ebx
add eax, edi
neg eax
xor edx, esi
xor ecx, 0x8824865c
dec eax
xor esi, 0x93a1fd82
xchg ecx, esi
xor ebx, 0xe6f35441
inc eax
ror esi, 0x16
dec ebx
xchg ecx, eax
call fcn.00418692
add ebx, ebp
or edi, dword [0x4f4e87]
inc edi
or ecx, dword [0x4f4e16]
rol edi, 0x1f
xor ebx, esi
xor edi, 0xd100d75b
call fcn.00402ba5
dec edx
xor edx, 0xdc5e314a
xor dword [0x4f4c44], edx
xor esi, edx
neg ebx
sub esi, 0xeafa029a
add esi, 0xeafa029a
neg ebx
xor esi, edx
xor dword [0x4f4cef], eax
xor edx, 0xdc5e314a
inc edx
xor edi, 0xd100d75b
xor ebx, esi
ror edi, 0x1f
dec edi
sub ebx, ebp
call fcn.0042b56b
xchg ecx, eax
inc ebx
rol esi, 0x16
dec eax
sub ebx, 0x1ab96075
and dword [0x4f4c5c], edi
sub eax, edx
rol ecx, 0x15
inc edx
xor dword [0x4f4dc5], edi
xchg esi, eax
sub dword [0x4f4d5e], eax
rol esi, 2
xor ecx, 0xc1a01bb2
xchg ebx, edx
call fcn.00401767
xchg ebx, edx
xor ecx, 0xc1a01bb2
ror esi, 2
xchg esi, eax
and dword [0x4f4caa], ecx
dec edx
ror ecx, 0x15
add eax, edx
sub dword [0x4f4dee], edi
push ebx
rol esi, 0xe
add dword [0x4f4d5a], ecx
xor esi, ecx
xor dword [0x4f4d64], edx
or ebx, dword [0x4f4e6d]
add esi, dword [0x4f4e14]
add dword [0x4f4d3a], ecx
xor ecx, 0x36fe9807
xor dword [0x4f4d4f], ecx
call fcn.00461168
add esi, ebp
dec edi
and dword [0x4f4cc6], esi
sub ebx, dword [0x4f4f78]
or ecx, dword [0x4f4e3b]
add edx, edi
xor ecx, 0x29991803
mov dword [0x4f4d81], eax
xor ecx, 0x29991803
int1
add ebx, dword [eax]
cdq
sub dword [ebx], ebp
xlatb
mov dword [0x4f4d45], ecx
inc edi
sub esi, ebp
call fcn.00494590
xor ecx, 0x36fe9807
add dword [0x4f4c65], ecx
or dword [0x4f4dc3], esi
xor esi, ecx
ror esi, 0xe
mov ebx, 0xd5af6ef9
ror edx, 0x1d
dec edi
rol edi, 0x12
and dword [0x4f4dd0], ebx
neg esi
xor edx, dword [0x4f4ee9]
neg esi
sub ecx, esp
dec ebx
add dword [0x4f4da8], eax
sub eax, esi
add dword [0x4f4c3d], esi
call fcn.0042cf94
sub esi, 0xffb99f17
or dword [0x4f4db1], ebx
sub dword [0x4f4c8a], ecx
rol edx, 0x1f
xor edi, dword [0x4f4e51]
or dword [0x4f4d5a], ebx
add esi, dword [0x4f4f1c]
xchg edi, esi
xchg edi, esi
ror edx, 0x1f
add esi, 0xffb99f17
call fcn.004698ab
and dword [0x4f4c6b], edi
add eax, esi
mov dword [0x4f4d0b], eax
inc ebx
add ecx, esp
neg esi
neg esi
xor dword [0x4f4d2f], ecx
ror edi, 0x12
inc edi
rol edx, 0x1d
sub ebx, 0xfdcba509
add ecx, eax
ror edx, 4
neg ebx
xor esi, eax
call fcn.0045fd51
add ecx, dword [0x4f4e7d]
call fcn.0041ef84
mov dword [0x4f4d7a], ebx
neg eax
add eax, esp
ror esi, 0x1e
and dword [0x4f4c58], eax
ror esi, 0x14
mov dword [0x4f4cce], esi
and dword [0x4f4dd0], edx
rol esi, 0x14
rol esi, 0x1e
sub eax, esp
neg eax
call fcn.004564e8
xor esi, eax
neg ebx
rol edx, 4
sub ecx, eax
add ebx, 0x9c8e9f66
sub ebx, dword [0x4f4f2e]
not edx
xor esi, esp
not eax
or dword [0x4f4cd4], ecx
xchg edx, esi
call fcn.0044bcfa
add dword [0x4f4d0d], edx
add esi, dword [0x4f4ec4]
not esi
add eax, ecx
add eax, dword [0x4f4ed2]
xor edx, esi
call fcn.004685a3
call fcn.0040b79f
xor edx, esi
sub eax, ecx
not esi
sub dword [0x4f4db3], ecx
xchg edx, esi
mov dword [0x4f4d9c], esi
not eax
xor esi, esp
not edx
push ebx
inc edx
sub dword [0x4f4da1], eax
call fcn.00424b43
xor edx, ecx
dec esi
sub dword [0x4f4d7b], ecx
add esi, 0x28fac1b8
xor edx, dword [0x4f4f33]
sub ecx, 0xb894fbff
xchg edi, edx
rol esi, 0x13
call fcn.00418b69
ror esi, 0x13
xchg edi, edx
add ecx, 0xb894fbff
sub esi, 0x28fac1b8
and dword [0x4f4dd2], edx
inc esi
xor edx, ecx
call fcn.00474f97
dec edx
push esp
inc edx
neg esi
rol ecx, 4
xor edi, 0xf0603c05
call fcn.00403724
rol edi, 5
xchg edx, eax
ror ebx, 0x16
mov dword [0x4f4d2a], esi
neg esi
sub esi, 0x572f578a
add edi, edx
xchg edx, eax
rol ebx, 0x14
or esi, dword [0x4f4e19]
sub edi, 0xdb0e913e
xchg eax, esi
xchg eax, esi
add edi, 0xdb0e913e
ror ebx, 0x14
xchg edx, eax
sub edi, edx
add esi, 0x572f578a
neg esi
xor dword [0x4f4c45], ecx
rol ebx, 0x16
xchg edx, eax
ror edi, 5
call fcn.0044925f
xor edi, 0xf0603c05
ror ecx, 4
neg esi
dec edx
push eax
xor ecx, esi
ror edx, 0x13
add ecx, eax
sub edx, ecx
or ebx, dword [0x4f4fa3]
xor edx, 0x58705d06
not ebx
add edi, 0x6f3dd2be
ror edi, 4
xchg edx, eax
inc edi
xor ecx, dword [0x4f4f8a]
mov dword [0x4f4d03], ebx
call fcn.0044e28a
and dword [0x4f4c38], ebx
dec edi
xchg edx, eax
rol edi, 4
sub edi, 0x6f3dd2be
not ebx
xor edx, 0x58705d06
add edx, ecx
sub ecx, eax
rol edx, 0x13
xor ecx, esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
inc eax
xor dword [0x4f4db0], ecx
xor dword [0x4f4d03], 0xb88629d4
neg esi
add ebx, dword [0x4f4eb6]
inc edx
add edx, edi
rol ebx, 2
xchg esi, eax
or ebx, dword [0x4f4ebb]
call fcn.0043f2f9
sub dword [0x4f4cd9], 0xff45c921
neg esi
dec ebx
ror ebx, 7
rol ebx, 7
inc ebx
neg esi
call fcn.0041d856
xchg esi, eax
ror ebx, 2
sub edx, edi
dec edx
neg esi
or dword [0x4f4dc9], ecx
dec eax
add esp, 0x10
dec edx
ror ecx, 0x11
inc esi
xchg edi, eax
xor ebx, edi
sub esi, 0x72d1d4fb
or esi, dword [0x4f4e37]
xor dword [0x4f4d3b], ebx
add ebx, dword [0x4f4e4c]
call fcn.0040f3a1
rol eax, 0x11
sub edi, 0x1316550f
or ebx, dword [0x4f4f7c]
call fcn.00406f42
neg edx
xchg edi, esi
or dword [0x4f4dba], 0x35610fce
or dword [0x4f4d5f], 0x2099bca3
and dword [0x4f4d82], ecx
dec ebx
sub eax, dword [0x4f4e19]
sub eax, 0x4a90bd1b
add eax, 0x4a90bd1b
inc ebx
xor dword [0x4f4d5d], 0xe70b898b
sub dword [0x4f4d2b], 0xc421bd4e
xchg edi, esi
neg edx
call fcn.0047ca5a
add edi, 0x1316550f
ror eax, 0x11
call fcn.0049f284
add dword [0x4f4c6a], ebx
add esi, 0x72d1d4fb
xor ebx, edi
xchg edi, eax
dec esi
rol ecx, 0x11
inc edx
mov esi, 0x343c08d1
rol edi, 0x1e
call fcn.0046dbfc
neg edi
sub edx, dword [0x4f4e8d]
sub ecx, eax
inc edx
call fcn.00465715
sub dword [0x4f4d86], edi
call fcn.0047b339
not edx
xor ebx, 0xb2a05193
xor ecx, esp
call fcn.0047bd32
not edx
ror edx, 0x13
and dword [0x4f4d97], ecx
xor ecx, dword [0x4f4ed8]
call fcn.0046ab8a
call fcn.0046c4e4
rol edx, 0x13
not edx
xor ecx, esp
xor ebx, 0xb2a05193
not edx
call fcn.004808a7
call fcn.00465cb0
dec edx
add ecx, eax
neg edi
call fcn.00470d54
ror edi, 0x1e
sub esi, 0xcfe98b9d
dec ebx
or dword [0x4f4d36], ebx
or edx, dword [0x4f4f05]
ror ecx, 0x1c
add dword [0x4f4c4a], edi
neg ebx
mov dword [0x4f4c99], edx
ror eax, 8
not esi
mov dword [0x4f4cf8], eax
xor esi, eax
sub edx, dword [0x4f4e99]
sub edx, dword [0x4f4e87]
not ecx
xor ecx, 0x3603cf73
neg esi
inc ecx
xor dword [0x4f4cb4], ecx
add edi, ebp
call fcn.0042dbed
sub eax, dword [0x4f4eed]
xor dword [0x4f4db2], edi
or dword [0x4f4dd7], edi
call fcn.0043843d
sub edi, ebp
sub dword [0x4f4d70], ecx
dec ecx
neg esi
xor ecx, 0x3603cf73
not ecx
xor esi, eax
or dword [0x4f4d40], esi
not esi
rol eax, 8
neg ebx
rol ecx, 0x1c
sub dword [0x4f4d2a], esi
inc ebx
sub esi, 0x64527cf4
inc ecx
call fcn.00447f25
sub esi, 0xf8660942
add edi, dword [0x4f4ed3]
add esi, dword [0x4f4f85]
dec eax
not ebx
xor dword [0x4f4ded], esi
add dword [0x4f4d38], 0xc4bb3cc9
inc edi
xor edx, dword [0x4f4ebb]
call fcn.0041d71c
call fcn.0046e9fb
dec edi
and dword [0x4f4c80], ecx
not ebx
inc eax
add esi, 0xf8660942
call fcn.0046cbe4
dec ecx
push esi
or esi, dword [0x4f4ebd]
neg edx
sub dword [0x4f4d3f], edi
neg eax
call fcn.0047073e
add eax, ecx
sub edi, 0x23a23871
xor edi, esi
sub edx, dword [0x4f4eba]
call fcn.0047393e
sub edx, dword [0x4f4f08]
xor ebx, 0xdab10fb4
xchg eax, edx
add edx, dword [0x4f4fbc]
xchg eax, edx
xor ebx, 0xdab10fb4
xor edi, esi
add edi, 0x23a23871
sub eax, ecx
call fcn.00423b8f
neg eax
sub dword [0x4f4c9a], edi
neg edx
mov esi, 0xeefc7d1
sub dword [0x4f4c6d], ebx
sub ecx, dword [0x4f4eed]
sub esi, ecx
add eax, dword [0x4f4e5f]
add ebx, dword [0x4f4e79]
not esi
xchg ecx, eax
sub eax, 0xca284f69
sub dword [0x4f4ceb], edi
add ecx, edx
xor edx, 0x29da2017
inc edi
mov dword [0x4f4c5f], ecx
not ecx
xor dword [0x4f4deb], edx
add dword [0x4f4cff], edi
ror ecx, 0x1a
sub esi, dword [0x4f4ef2]
inc edi
ror edx, 0x19
not esi
or dword [0x4f4dbf], eax
xor dword [0x4f4c45], edx
not esi
rol edx, 0x19
dec edi
rol ecx, 0x1a
not ecx
add dword [0x4f4d30], esi
dec edi
xor edx, 0x29da2017
sub ecx, edx
add eax, 0xca284f69
xchg ecx, eax
not esi
add esi, ecx
or dword [0x4f4ccc], esi
and esi, 0xc576a21c
or edi, dword [0x4f4e32]
xchg edi, esi
not ebx
inc ebx
and dword [0x4f4d8a], ecx
or edi, dword [0x4f4e1c]
sub edx, ebp
call fcn.004552c7
dec esi
ror eax, 0x16
add dword [0x4f4d23], ebx
or edi, dword [0x4f4f01]
rol edi, 5
inc ecx
call fcn.00445abb
rol eax, 0x15
call fcn.004723b5
sub eax, ebp
ror esi, 0x16
rol esi, 0x16
add eax, ebp
call fcn.0041f507
ror eax, 0x15
dec ecx
ror edi, 5
xor dword [0x4f4c3b], esi
rol eax, 0x16
inc esi
call fcn.00453d70
add edx, ebp
dec ebx
not ebx
xchg edi, esi
add esi, 0xfb99adf0
sub edi, esp
call fcn.004281a6
xchg eax, esi
xor edi, dword [0x4f4ec3]
sub edx, 0x38fa29ac
call fcn.00490cc6
add esi, 0x7490ecbe
sub eax, dword [0x4f4ec3]
call fcn.004793ff
xor ecx, edx
rol eax, 0x13
xor dword [0x4f4d45], 0x3e5a26e5
add eax, dword [0x4f4ef8]
inc eax
call fcn.00471d9d
inc eax
not ecx
call fcn.00414db9
call fcn.0045f94c
not ecx
dec eax
call fcn.0045695e
dec eax
sub dword [0x4f4c49], 0x18203ca4
ror eax, 0x13
xor ecx, edx
sub esi, 0x7490ecbe
call fcn.0047ed16
add edx, 0x38fa29ac
xchg eax, esi
call fcn.00471cee
add edi, esp
push esi
add ecx, dword [0x4f4ea2]
call fcn.00465092
not esi
xor ebx, 0x95b890ca
not esi
rol ebx, 2
xor edx, ebx
add dword [0x4f4c74], 0xaff60a05
sub esi, dword [0x4f4f28]
xchg ebx, eax
or dword [0x4f4d59], ebx
call fcn.00447573
call fcn.004a02da
call fcn.004963cd
add dword [0x4f4d2c], ecx
xchg ebx, eax
and dword [0x4f4d46], 0xb2708944
xor edx, ebx
ror ebx, 2
not esi
xor ebx, 0x95b890ca
not esi
push 0x2ff10a
xor esi, edx
add dword [0x4f4dd4], 0xa40e60bc
call fcn.00497b7d
xor eax, dword [0x4f4e50]
add ecx, 0xb681f44f
add eax, dword [0x4f4e4d]
not edi
xor edx, 0xe89fd6a6
call fcn.00425ce1
add ecx, 0x90902957
inc edi
add dword [0x4f4c5d], ecx
xchg edi, edx
xor esi, dword [0x4f4f76]
xchg esi, edx
or dword [0x4f4d6d], esi
not esi
sub dword [0x4f4c8b], edi
xchg eax, edx
sub dword [0x4f4d1d], edi
xchg edi, esi
call fcn.004183d0
call fcn.004752c8
xchg edi, esi
xor dword [0x4f4ce9], edi
xchg eax, edx
not esi
xor dword [0x4f4de1], ecx
xchg esi, edx
xchg edi, edx
or dword [0x4f4c6f], ebx
dec edi
sub ecx, 0x90902957
call fcn.00458169
xor edx, 0xe89fd6a6
not edi
sub ecx, 0xb681f44f
call fcn.0044fed0
xor esi, edx
mov ecx, 0x5ee322ab
sub dword [0x4f4d3b], esi
neg edx
or edx, dword [0x4f4e78]
inc edi
and dword [0x4f4c7c], ecx
inc ebx
mov dword [0x4f4d39], esi
inc ebx
rol edx, 0x19
xor eax, dword [0x4f4ed3]
xchg ecx, edx
neg ecx
add ecx, 0xe87df74b
add eax, dword [0x4f4ec7]
add edx, esp
xor edi, ebx
dec esi
call fcn.00489a7c
sub eax, dword [0x4f4ebf]
inc esi
xor edi, ebx
sub edx, esp
sub ecx, 0xe87df74b
neg ecx
xchg ecx, edx
ror edx, 0x19
dec ebx
mov dword [0x4f4d4a], ebx
dec ebx
dec edi
neg edx
add dword [0x4f4db8], ebx
or ecx, 0x2d6ce45d
sub dword [0x4f4c93], ebx
xor dword [0x4f4ddf], edi
add dword [0x4f4c65], edi
dec ecx
neg esi
call fcn.0043cc08
sub eax, ebx
xor eax, 0xcf35850a
neg edx
xor dword [0x4f4cc3], esi
xor dword [0x4f4da2], esi
inc esi
sub edi, 0xe1472956
call fcn.00442a10
xor edi, 0x8b5660e3
dec ebx
or eax, dword [0x4f4fb0]
or dword [0x4f4cbf], esi
xor esi, 0x382353b9
call fcn.0040e820
call fcn.004598e5
xor esi, 0x382353b9
mov dword [0x4f4d1e], esi
inc ebx
xor edi, 0x8b5660e3
add edi, 0xe1472956
dec esi
mov dword [0x4f4c5d], edx
neg edx
xor eax, 0xcf35850a
add eax, ebx
call fcn.0049524e
neg esi
inc ecx
and dword [0x4f4ce7], ebx
sub dword [0x4f4dfb], edx
add ecx, 0x80101901
neg ecx
rol esi, 0xc
not eax
xor eax, edi
not ecx
dec edi
rol edx, 0x15
not ebx
ror esi, 0x16
inc edx
and dword [0x4f4cde], 0xd981584e
xor edx, esi
dec esi
or eax, dword [0x4f4fb8]
xor ecx, 0x7c628b35
add esi, edi
xchg edx, esi
sub dword [0x4f4c66], 0x72fe49e2
and dword [0x4f4cc0], 0x429b5ac2
xchg edx, esi
sub esi, edi
xor ecx, 0x7c628b35
inc esi
xor edx, esi
or dword [0x4f4c4e], 0xf5ff2ecc
dec edx
rol esi, 0x16
not ebx
ror edx, 0x15
inc edi
not ecx
xor eax, edi
not eax
ror esi, 0xc
neg ecx
push ecx
or dword [0x4f4db8], ecx
sub eax, dword [0x4f4f76]
neg edi
xor dword [0x4f4c92], ecx
xor dword [0x4f4d83], edi
add eax, ecx
add ecx, dword [0x4f4eb3]
call fcn.0044b8e3
xor eax, 0x39922fc5
sub esi, 0x13a4211c
add edx, dword [0x4f4e1b]
xchg edi, eax
sub dword [0x4f4cce], ebx
add dword [0x4f4c3b], ebx
xor ecx, dword [0x4f4fb5]
add eax, dword [0x4f4f65]
inc eax
not edx
ror edi, 0x11
rol edi, 0x11
not edx
dec eax
mov dword [0x4f4c8d], ebx
mov dword [0x4f4c52], eax
xchg edi, eax
add esi, 0x13a4211c
xor eax, 0x39922fc5
call fcn.00462e18
sub eax, ecx
xor dword [0x4f4c53], ebx
neg edi
add dword [0x4f4cb5], edx
call eax
xor ebx, edx
xor dword [0x4f4d08], ecx
neg edx
call fcn.00450167
xor eax, 0xc6beead7
sub dword [0x4f4dd5], edi
neg ebx
call fcn.0048f30c
ror esi, 0x1e
add ecx, 0xe381fefb
xchg ecx, edx
xchg ecx, edx
sub ecx, 0xe381fefb
rol esi, 0x1e
neg ebx
xor eax, 0xc6beead7
call fcn.0045e28f
neg edx
and dword [0x4f4d8c], edx
xor ebx, edx
lea esi, [0xd2e1f9b6]
neg esi
ror ebx, 0x1c
not edi
rol esi, 0xa
xor ecx, 0x7cf1d88c
neg eax
add ecx, dword [0x4f4eac]
not eax
xor ecx, esi
sub dword [0x4f4c88], ebx
call fcn.00404df0
call fcn.004439bb
add dword [0x4f4cd0], eax
xor ecx, esi
not eax
neg eax
xor ecx, 0x7cf1d88c
ror esi, 0xa
not edi
rol ebx, 0x1c
neg esi
and esi, 0xc39c669d
xor ebx, 0x78e6fe13
and dword [0x4f4d65], ebx
call fcn.00466c50
inc ebx
not edx
sub ebx, 0x880a8e9e
sub dword [0x4f4d60], eax
sub edi, 0xfc045df0
xor esi, edx
xor esi, dword [0x4f4e4d]
xor edi, 0xe7743c18
inc ebx
call fcn.004a0ccd
rol eax, 0x12
call fcn.00423ccc
ror eax, 0x12
call fcn.0043c62a
dec ebx
xor edi, 0xe7743c18
xor esi, edx
add edi, 0xfc045df0
add dword [0x4f4c95], ebx
add ebx, 0x880a8e9e
not edx
dec ebx
call fcn.00414514
add dword [0x4f4ce2], ebx
xor ebx, 0x78e6fe13
add esi, 0x3dd8f56c
sub edx, 0x963c132a
add eax, 0xd0730cdd
call fcn.0041dca7
ror ebx, 0xe
sub ecx, eax
or dword [0x4f4d30], edi
and dword [0x4f4d8c], ecx
xor eax, dword [0x4f4e58]
rol edx, 1
neg edx
call fcn.004a0699
dec esi
sub ecx, 0xce4647e8
or ebx, dword [0x4f4f3e]
call fcn.0042ef4a
xor edi, 0xc85f6f20
call fcn.0041f56f
add dword [0x4f4c74], esi
sub dword [0x4f4d5b], edx
call fcn.0041c3ff
xor edi, 0xc85f6f20
call fcn.0042cf94
add ecx, 0xce4647e8
inc esi
neg edx
ror edx, 1
and dword [0x4f4dc2], edi
sub dword [0x4f4c76], esi
add ecx, eax
rol ebx, 0xe
sub eax, 0xd0730cdd
add edx, 0x963c132a
mov edi, eax
not eax
rol ecx, 0x1f
and dword [0x4f4cb2], ebx
rol ecx, 0xd
not esi
add ecx, 0x5e6f194a
or esi, dword [0x4f4fa2]
xor edx, 0x6b392220
not ebx
sub dword [0x4f4cbd], esi
xor ecx, dword [0x4f4f96]
sub dword [0x4f4c7b], 0x26e6d566
xor edi, ebp
xor eax, dword [0x4f4e0e]
call fcn.00498e42
and dword [0x4f4d61], 0x6a6e6095
inc edi
sub edx, dword [0x4f4f44]
or edx, dword [0x4f4e46]
dec edi
sub dword [0x4f4ccf], 0xe607ce89
call fcn.0047029d
xor edi, ebp
add dword [0x4f4d7d], 0xaf712e61
or dword [0x4f4c4e], edi
not ebx
xor edx, 0x6b392220
sub ecx, 0x5e6f194a
not esi
ror ecx, 0xd
and dword [0x4f4c79], edi
ror ecx, 0x1f
not eax
mov ecx, 0x2ff10a
add edx, 0x9ce2cb98
xchg esi, edx
not esi
call fcn.00486e65
add edx, dword [0x4f4f1d]
not edi
xor ebx, dword [0x4f4f3d]
rol ecx, 0x1d
add edi, 0x6e8d44c2
call fcn.0049524e
xor edx, ecx
mov dword [0x4f4d70], edx
and dword [0x4f4d1c], edx
call fcn.0047393e
add dword [0x4f4c8e], ebx
call fcn.0042f3f9
xor edx, ebx
xchg ebx, edx
call fcn.00465e30
call fcn.0041d856
xchg ebx, edx
xor edx, ebx
call fcn.0041606c
and dword [0x4f4d82], eax
mov dword [0x4f4d1a], edx
xor edx, ecx
call fcn.0049ab84
sub edi, 0x6e8d44c2
ror ecx, 0x1d
not edi
not esi
xchg esi, edx
sub edx, 0x9ce2cb98
rep movsb byte es:[edi], byte [esi]
ror esi, 0x14
call fcn.00411534
sub edi, dword [0x4f4e3c]
xor edx, ecx
add eax, esp
dec ecx
rol ecx, 0xa
neg edx
add dword [0x4f4dd1], eax
not edi
and dword [0x4f4c86], edi
mov dword [0x4f4df1], esi
xchg edi, edx
call fcn.0049524e
xchg edi, edx
xor dword [0x4f4d7f], edx
add dword [0x4f4dbc], esi
not edi
neg edx
ror ecx, 0xa
inc ecx
sub eax, esp
xor edx, ecx
rol esi, 0x14
call switch.0x004731a9
or ecx, dword [0x4f4f7a]
ror edx, 9
call fcn.0049524e
add ebx, 0x127dea56
neg edx
sub eax, ebp
xor ebx, 0x697d9d7d
rol ebx, 0x1d
neg ecx
add eax, dword [0x4f4e8a]
call fcn.00409ec8
call fcn.0046bac9
call fcn.0042c25f
neg ecx
ror ebx, 0x1d
xor ebx, 0x697d9d7d
popfd
jge 0x409a5c
add eax, ebp
neg edx
sub ebx, 0x127dea56
call fcn.00498e42
rol edx, 9
rol byte [ebx + 0x418d08c6], 1
pop es
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp esi, eax
jb 0x4099f0
shr edx, cl
mov eax, 0xfffffff9
mov ecx, edx
and ecx, 0x7f
add ecx, 0xb
shr edx, 7
sub eax, dword [ebp - 0x14]
add esi, eax
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
mov eax, dword [eax + 0x64]
add eax, dword [edi + 0x60]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x34], ecx
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], edx
cmp ecx, eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], esi
ja 0x409afa
add byte [ebx + 0x7400cc7d], al
and dword [ebx + 0x7d8bcc5d], ecx
enter 0xffffffffffffa48d, 0x24
add byte [eax], al
add byte [eax], al
cmp dword [ebp - 0x34], 0
je 0x409a84
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
lea esp, [esp]
mov eax, dword [ecx + 0x68]
mov word [ecx + eax*2 + 0x70], di
inc dword [ecx + 0x68]
dec ebx
jne 0x409a70
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
mov eax, dword [ecx + 0x68]
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 0x64]
add eax, dword [ecx + 0x60]
cmp dword [ebp - 0x2c], eax
jb 0x409850
cmp dword [ecx], 0x1b
je 0x40a195
lea edx, [ecx + 0x6c]
lea eax, [ecx + 0x530]
lea edi, [ecx + 0x2f0]
mov dword [edx], eax
mov dword [ecx + 0x4c], eax
lea eax, [ecx + 0x54]
push edi
push eax
push edx
push dword [ecx + 0x60]
mov dword [ebp - 0x38], edx
lea edx, [ecx + 0x70]
mov ecx, 1
mov dword [eax], 9
mov dword [ebp - 0x34], edi
call fcn.0040d600
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov dword [ebp - 0x30], eax
test eax, eax
je 0x409b09
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov dword [eax + 0x18], str.invalid_literal_lengths_set
jmp 0x40a18f
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], str.invalid_bit_length_repeat
jmp 0x40a18f
mov edx, dword [ebp - 0x38]
push dword [ebp - 0x34]
mov eax, dword [edx]
mov dword [ecx + 0x50], eax
lea eax, [ecx + 0x58]
push eax
push edx
push dword [ecx + 0x64]
mov dword [eax], 6
mov eax, dword [ecx + 0x60]
add ecx, 0x70
lea edx, [ecx + eax*2]
mov ecx, 2
call fcn.0040d600
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
add esp, 0x10
mov dword [ebp - 0x30], eax
test eax, eax
je 0x409b54
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], str.invalid_distances_set
jmp 0x40a18f
mov dword [ecx], 0x12
cmp ebx, 6
jb 0x409bbd
cmp dword [ebp - 0x1c], 0x102
jb 0x409bbd
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov dword [eax + 0xc], edi
mov edi, dword [ebp - 0x1c]
mov dword [eax + 0x10], edi
mov edi, dword [ebp - 0x10]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [ecx + 0x38], edx
mov edx, dword [ebp - 0x28]
mov dword [ecx + 0x3c], esi
mov ecx, eax
call fcn.0040c980
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edx, dword [ecx + 0x38]
mov esi, dword [ecx + 0x3c]
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], esi
jmp 0x40a195
mov ecx, dword [ecx + 0x54]
mov eax, 1
shl eax, cl
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x4c]
mov eax, dword [ebp - 0x34]
and eax, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ecx + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
jbe 0x409c1e
test ebx, ebx
je 0x40a1f4
movzx eax, byte [edi]
mov ecx, esi
shl eax, cl
mov ecx, dword [ebp - 0x38]
dec ebx
inc edi
add edx, eax
mov eax, dword [ebp - 0x34]
and eax, edx
add esi, 8
mov eax, dword [ecx + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp ecx, esi
ja 0x409be8
test al, al
je 0x409cd2
test al, 0xf0
jne 0x409cd2
mov ecx, eax
shr ecx, 8
movzx edi, cl
mov dword [ebp - 0x2c], ecx
movzx ecx, al
add ecx, edi
mov ebx, 1
shl ebx, cl
mov ecx, edi
mov edx, eax
shr eax, 0x10
dec ebx
and ebx, dword [ebp - 4]
mov dword [ebp - 0x34], edx
shr ebx, cl
mov ecx, dword [ebp - 0x38]
add ebx, eax
mov eax, dword [ecx + ebx*4]
mov ecx, eax
shr ecx, 8
movzx edi, cl
mov ecx, dword [ebp - 0x2c]
movzx ecx, cl
add edi, ecx
cmp edi, esi
jbe 0x409cc5
mov eax, dword [ebp - 8]
test eax, eax
je 0x40a1f7
mov ebx, dword [ebp - 0x10]
dec eax
mov dword [ebp - 8], eax
movzx eax, byte [ebx]
mov ecx, esi
shl eax, cl
inc ebx
mov dword [ebp - 0x10], ebx
movzx ebx, dh
add dword [ebp - 4], eax
movzx eax, word [ebp - 0x32]
movzx ecx, dl
add ecx, ebx
mov edi, 1
shl edi, cl
mov ecx, ebx
add esi, 8
dec edi
and edi, dword [ebp - 4]
shr edi, cl
add edi, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + edi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, ebx
cmp ecx, esi
ja 0x409c71
mov ebx, dword [ebp - 8]
movzx ecx, dh
mov edx, dword [ebp - 4]
shr edx, cl
sub esi, ecx
mov edi, dword [ebp - 0xc]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr edx, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
mov dword [edi + 0x40], ecx
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], esi
test al, al
jne 0x409d04
mov dword [ecx], 0x17
jmp 0x40a195
test al, 0x20
je 0x409d13
mov dword [ecx], 0xb
jmp 0x40a195
test al, 0x40
je 0x409d26
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], str.invalid_literal_length_code
jmp 0x40a18f
movzx eax, al
and eax, 0xf
mov dword [ecx + 0x48], eax
mov dword [ecx], 0x13
mov eax, dword [ecx + 0x48]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x409d87
cmp esi, eax
jae 0x409d67
test ebx, ebx
je 0x40a1f4
movzx eax, byte [edi]
mov ecx, esi
shl eax, cl
dec ebx
inc edi
add esi, 8
add edx, eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp esi, dword [ebp - 0x38]
jb 0x409d43
mov ecx, dword [ebp - 0x38]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0xc]
dec eax
and eax, edx
add dword [ecx + 0x40], eax
mov ecx, dword [ebp - 0x38]
shr edx, cl
sub esi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [ecx], 0x14
mov ecx, dword [ecx + 0x58]
mov eax, 1
shl eax, cl
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x50]
mov eax, dword [ebp - 0x34]
and eax, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ecx + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
jbe 0x409dee
test ebx, ebx
je 0x40a1f4
movzx eax, byte [edi]
mov ecx, esi
shl eax, cl
mov ecx, dword [ebp - 0x38]
dec ebx
inc edi
add edx, eax
mov eax, dword [ebp - 0x34]
and eax, edx
add esi, 8
mov eax, dword [ecx + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp ecx, esi
ja 0x409db8
test al, 0xf0
jne 0x409e9e
mov ecx, eax
shr ecx, 8
movzx edi, cl
mov dword [ebp - 0x2c], ecx
movzx ecx, al
add ecx, edi
mov ebx, 1
shl ebx, cl
mov ecx, edi
mov edx, eax
shr eax, 0x10
dec ebx
and ebx, dword [ebp - 4]
mov dword [ebp - 0x34], edx
shr ebx, cl
mov ecx, dword [ebp - 0x38]
add ebx, eax
mov eax, dword [ecx + ebx*4]
mov ecx, eax
shr ecx, 8
movzx edi, cl
mov ecx, dword [ebp - 0x2c]
movzx ecx, cl
add edi, ecx
cmp edi, esi
jbe 0x409e94
lea esp, [esp]
mov eax, dword [ebp - 8]
test eax, eax
je 0x40a1f7
mov ebx, dword [ebp - 0x10]
dec eax
mov dword [ebp - 8], eax
movzx eax, byte [ebx]
mov ecx, esi
shl eax, cl
inc ebx
mov dword [ebp - 0x10], ebx
movzx ebx, dh
add dword [ebp - 4], eax
movzx eax, word [ebp - 0x32]
movzx ecx, dl
add ecx, ebx
mov edi, 1
shl edi, cl
mov ecx, ebx
add esi, 8
dec edi
and edi, dword [ebp - 4]
shr edi, cl
add edi, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + edi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, ebx
cmp ecx, esi
ja 0x409e40
movzx ecx, dh
mov edx, dword [ebp - 4]
shr edx, cl
sub esi, ecx
mov edi, dword [ebp - 0x10]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr edx, cl
sub esi, ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], edx
test al, 0x40
je 0x409ecc
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [ebp - 8]
mov dword [eax + 0x18], str.invalid_distance_code
jmp 0x40a18f
ret
add al, byte [eax]
invalid
mov ebx, dword [ebp - 0xc]
mov ecx, eax
shr ecx, 0x10
movzx eax, al
mov dword [ebx + 0x44], ecx
mov ecx, ebx
mov ebx, dword [ebp - 8]
and eax, 0xf
mov dword [ecx + 0x48], eax
mov dword [ecx], 0x15
mov eax, dword [ecx + 0x48]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x409f47
cmp esi, eax
jae 0x409f24
lea esp, [esp]
test ebx, ebx
je 0x40a1f4
movzx eax, byte [edi]
mov ecx, esi
shl eax, cl
dec ebx
inc edi
add esi, 8
add edx, eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp esi, dword [ebp - 0x38]
jb 0x409f00
mov ecx, dword [ebp - 0x38]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0xc]
dec eax
and eax, edx
add dword [ecx + 0x44], eax
mov ecx, dword [ebp - 0x38]
shr edx, cl
sub esi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], edx
mov eax, dword [ecx + 0x2c]
sub eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 8]
add eax, dword [ebp - 0x28]
cmp dword [ecx + 0x44], eax
jbe 0x409f67
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], str.invalid_distance_too_far_back
jmp 0x40a18f
mov dword [ecx], 0x16
cmp dword [ebp - 0x1c], 0
je 0x40a1f4
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x44]
cmp eax, dword [ebp - 0x38]
jbe 0x409fb9
sub eax, dword [ebp - 0x38]
mov edi, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
mov dword [ebp - 0x34], eax
cmp eax, edi
jbe 0x409fa4
add edx, dword [ecx + 0x28]
sub eax, edi
mov dword [ebp - 0x34], eax
sub edx, eax
jmp 0x409fa8
sub edx, eax
add edx, edi
mov edi, dword [ecx + 0x40]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x38], edi
cmp eax, edi
jbe 0x409fcb
mov eax, edi
jmp 0x409fc8
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], ebx
sub dword [ebp - 0x2c], eax
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x24]
cmp edi, eax
cmova edi, eax
sub eax, edi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
sub eax, edi
mov dword [ecx + 0x40], eax
sub ebx, edx
jmp 0x409ff0
mov al, byte [ebx + edx]
mov byte [edx], al
inc edx
dec edi
jne 0x409ff0
cmp dword [ecx + 0x40], 0
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 4]
jne 0x40a195
mov dword [ecx], 0x12
jmp 0x40a195
mov dword [ecx], 0x1b
mov eax, dword [ecx]
cmp eax, 0x1c
jbe 0x408df0
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0xc]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [ebp - 4]
mov dword [edi], ecx
cmp dword [ebx + 0x28], 0
mov dword [ebx + 0x3c], esi
mov esi, dword [ebp - 0x28]
mov dword [ebx + 0x38], eax
jne 0x40a22d
cmp dword [ebx], 0x18
jge 0x40a24c
cmp esi, dword [edi + 0x10]
je 0x40a24c
mov edx, esi
mov ecx, edi
call fcn.00408c60
test eax, eax
je 0x40a24c
mov dword [ebx], 0x1c
pop edi
pop esi
mov eax, 0xfffffffc
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x3c]
sub eax, dword [edi + 4]
sub esi, dword [edi + 0x10]
add dword [edi + 8], eax
add dword [edi + 0x14], esi
add dword [ebx + 0x1c], esi
cmp dword [ebx + 8], 0
mov dword [ebp - 0x3c], eax
je 0x40a29b
test esi, esi
je 0x40a29b
cmp dword [ebx + 0x10], 0
mov edx, dword [edi + 0xc]
je 0x40a287
sub edx, esi
jne 0x40a27c
xor eax, eax
jmp 0x40a295
mov ecx, dword [ebx + 0x18]
push esi
call fcn.0040cdd0
jmp 0x40a292
mov ecx, dword [ebx + 0x18]
push esi
sub edx, esi
call fcn.0040c670
add esp, 4
mov dword [ebx + 0x18], eax
mov dword [edi + 0x30], eax
mov ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
xor eax, eax
and ecx, 0x40
cmp dword [ebx], 0xb
mov edx, 0x80
cmove eax, edx
add ecx, eax
add ecx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0x3c]
test eax, eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x2c], ecx
jne 0x40a1a5
test esi, esi
jne 0x40a1a5
pop edi
mov ecx, 0xfffffffb
test eax, eax
pop esi
cmove eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret