Function at 0x554520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x37c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b0], ebx
mov dword [ebp - 0x1f0], eax
mov ebx, dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x1e8], 1
mov dword [ebp - 0x194], esi
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x190], edi
mov esi, dword [ebp - 0x1e8]
movzx edi, byte [ebx + 0x16d]
lea eax, [ebp - 0x370]
push eax
and edi, 0x10
lea edx, [ebp - 0x1d0]
push edx
shr edi, 4
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.005661c0
mov dword [ebp - 0x10], eax
add esp, 0x10
cmp dword [ebp - 0x10], 0
jne 0x555882
mov ecx, dword [ebp - 0x1c8]
cmp ecx, 2
je 0x555875
cmp ecx, 1
je 0x555875
movzx eax, byte [ebx + 0x16d]
test al, 0x20
mov dword [ebp - 0x1b4], eax
je 0x55461a
movsx eax, byte [ebx + 0x158]
test eax, eax
jne 0x55461a
cmp dword [ebp - 0x1c4], 1
jle 0x55461a
cmp ecx, 5
jl 0x55461a
cmp ecx, 0x11
jle 0x55460d
cmp ecx, 0x19
jl 0x55461a
cmp ecx, 0x1f
jle 0x55460d
cmp ecx, 0x32
jl 0x554603
cmp ecx, 0x34
jle 0x55460d
jmp 0x55461a
cmp ecx, 0x28
jl 0x55461a
cmp ecx, 0x30
jg 0x55461a
mov eax, 1
mov dword [ebp - 0x1c0], eax
jmp 0x554622
xor eax, eax
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x370]
cmp eax, 7
jl 0x554756
cmp eax, 8
jg 0x554756
mov eax, dword [ebp - 0x1c4]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x554657
mov eax, dword [ebp - 0x1cc]
cdq
mov esi, dword [ebp - 0x14]
idiv esi
mov esi, eax
jmp 0x554659
xor esi, esi
test esi, esi
je 0x55474a
cmp ecx, 0x34
je 0x554670
cmp ecx, 0x1c
jl 0x55467d
cmp ecx, 0x2c
jg 0x55467d
mov eax, 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
jmp 0x554684
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x36c]
test eax, eax
jle 0x5546f0
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x35c]
jne 0x5546b0
mov edx, dword [ebp - 0x360]
cmp edx, dword [ebp - 0x364]
jg 0x5546b0
cmp edx, 1
je 0x55496b
mov dword [ebp - 0x374], ebx
xor ecx, ecx
lea ebx, [ecx*8]
lea ebx, [ebx + ecx*4]
mov edx, dword [ebp + ebx - 0x360]
mov ebx, dword [ebp + ebx - 0x35c]
mov dword [ebp + ecx*4 - 0x94], edx
mov dword [ebp + ecx*4 - 0x110], ebx
mov dword [ebp + ecx*4 - 0x18c], edx
inc ecx
cmp ecx, eax
jl 0x5546b8
mov ebx, dword [ebp - 0x374]
xor edx, edx
test eax, eax
jle 0x554721
mov dword [ebp - 0x374], ebx
xor ecx, ecx
mov ebx, dword [ebp + ecx*4 - 0x18c]
sub ebx, dword [ebp + ecx*4 - 0x94]
imul ebx, dword [ebp + ecx*4 - 0x110]
inc ecx
add edx, ebx
cmp ecx, eax
jl 0x5546fe
mov ebx, dword [ebp - 0x374]
add edx, dword [ebp - 0x368]
lea eax, [ebp - 0x370]
mov dword [ebp - 0x1d0], edx
lea edx, [ebp - 0x18c]
push eax
push edx
push 0
call fcn.005666e0
add esp, 0xc
jmp 0x55480d
mov dword [ebp - 8], 1
jmp 0x55480d
cmp eax, 6
je 0x554764
cmp eax, 5
jne 0x5547e0
cmp dword [ebp - 0x1c4], 0
je 0x5547d1
mov eax, dword [ebp - 0x1cc]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x5547d6
test byte [ebp - 0x1b4], 0x10
je 0x5547c1
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00566d90
add esp, 8
test eax, eax
je 0x5547c8
cmp dword [ebp - 0x1c0], 0
jne 0x5547c1
mov eax, dword [ebp - 0x1c4]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x5547bd
mov eax, dword [ebp - 0x1cc]
cdq
mov ecx, dword [ebp - 0x14]
idiv ecx
mov esi, eax
jmp 0x55480d
xor esi, esi
jmp 0x55480d
mov esi, 1
jmp 0x55480d
mov esi, 1
xor edi, edi
jmp 0x55480d
xor eax, eax
mov dword [ebp - 0x14], eax
mov esi, 1
mov dword [ebp - 8], esi
jmp 0x55480d
cmp ecx, 0x34
je 0x5547ff
cmp ecx, 0x1c
jl 0x5547ef
cmp ecx, 0x2c
jle 0x5547ff
mov eax, dword [ebp - 0x1cc]
mov esi, 1
mov dword [ebp - 0x14], eax
jmp 0x55480d
mov eax, dword [ebp - 0x1c4]
mov esi, 2
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1e0], edi
movzx eax, byte [ebx + 0x16f]
test al, 0x20
je 0x5548a6
and eax, 0xffffffdf
mov byte [ebx + 0x16f], al
cmp esi, 1
je 0x554ac5
push ebx
call fcn.00565ab0
mov dword [ebp - 0x10], eax
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x554a51
add dword [ebx + 0x98], 1
movzx eax, byte [ebx + 0x16f]
adc dword [ebx + 0x9c], 0
and eax, 0xfffffffb
mov byte [ebx + 0x16f], al
mov ecx, dword [ebx + 0x50]
test byte [ebx + 0x168], 1
je 0x55488e
test byte [ebx + 0x16b], 8
je 0x55488e
cmp byte [ebx + 0x155], 2
jne 0x55488e
lea edx, [ecx + 1]
mov dword [ebx + 0x3c], edx
jmp 0x554891
mov dword [ebx + 0x3c], ecx
mov edx, dword [ebx + 0xf8]
add ecx, edx
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x80], 0
cmp dword [ebp - 4], 0
jne 0x55575d
cmp dword [ebp - 8], 0
je 0x554aeb
cmp esi, 1
jle 0x55456e
mov eax, dword [ebp - 0x370]
cmp eax, 7
je 0x5548d7
cmp eax, 8
jne 0x554956
cmp dword [ebp - 0xc], 0
je 0x5548f4
mov eax, dword [ebp - 0x1c4]
xor edx, edx
add dword [ebp - 0x1d0], eax
dec esi
mov dword [ebp - 0xc], edx
jmp 0x554813
cmp dword [ebp - 0x18], 0
mov edx, dword [ebp - 0xc]
je 0x554902
mov edx, 1
xor eax, eax
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x36c]
test edx, edx
jle 0x554930
xor ecx, ecx
mov edi, dword [ebp + ecx*4 - 0x18c]
sub edi, dword [ebp + ecx*4 - 0x94]
imul edi, dword [ebp + ecx*4 - 0x110]
inc ecx
add eax, edi
cmp ecx, edx
jl 0x554913
add eax, dword [ebp - 0x368]
lea edx, [ebp - 0x18c]
mov dword [ebp - 0x1d0], eax
lea eax, [ebp - 0x370]
push eax
push edx
push 0
call fcn.005666e0
add esp, 0xc
jmp 0x554965
mov eax, dword [ebp - 0x1c4]
add dword [ebp - 0x1d0], eax
mov dword [ebp - 0x14], eax
dec esi
jmp 0x554813
cmp eax, 1
jg 0x5549e9
test byte [ebp - 0x1b4], 0x10
je 0x5549a9
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00566d90
add esp, 8
test eax, eax
je 0x5549c8
cmp dword [ebp - 0x1c0], 0
jne 0x5549a9
mov eax, dword [ebp - 0x36c]
test eax, eax
jg 0x5546b0
jmp 0x5546f0
mov eax, dword [ebp - 0x1cc]
mov esi, 1
mov edx, dword [ebp - 0x368]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1d0], edx
jmp 0x55480d
mov edi, dword [ebp - 0x1cc]
mov esi, 1
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x14], edi
xor edi, edi
mov dword [ebp - 0x1d0], eax
jmp 0x55480d
mov dword [ebp - 0x374], ebx
mov ecx, 1
lea edx, [ecx*8]
lea edx, [edx + ecx*4]
mov ebx, dword [ebp + edx - 0x360]
cmp ebx, 1
je 0x554a15
mov ebx, dword [ebp - 0x374]
jmp 0x5546b0
cmp ebx, dword [ebp + edx - 0x364]
jg 0x554a0a
mov ebx, dword [ebp + edx - 0x370]
imul ebx, dword [ebp + edx - 0x368]
cmp ebx, dword [ebp + edx - 0x35c]
je 0x554a41
mov ebx, dword [ebp - 0x374]
jmp 0x5546b0
inc ecx
cmp ecx, eax
jl 0x5549f4
mov ebx, dword [ebp - 0x374]
jmp 0x554970
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x554aae
test byte [edx + 0x44], 2
je 0x554a8c
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x554a82
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x64], ecx
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 1
jne 0x554834
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x14]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x134], edx
jmp 0x554834
mov ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1ac], edx
lea ecx, [ecx - 1]
cmp ecx, 0x20
jae 0x554b3f
mov edx, 1
shl edx, cl
test edx, 0x808a
je 0x554b3f
mov edi, dword [ebx + 0x3c]
mov edx, dword [ebp - 0x1ac]
and edx, ecx
and ecx, edi
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x19c], edi
mov dword [ebp - 0x1d8], 1
jmp 0x554b5e
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebx + 0x3c]
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1d8], 0
mov edx, dword [ebp - 0x14]
test al, 0x40
mov dword [ebp - 0x1b8], edx
jne 0x55526a
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x1d4], eax
add edx, edi
cmp eax, edx
jae 0x554d11
mov edx, dword [ebp - 0x19c]
sub eax, edx
push eax
mov dword [ebp - 0x1d4], eax
push edx
push dword [ebp - 0x1ac]
call fcn.0059f8e0
add esp, 0xc
mov eax, dword [ebp - 0x1d4]
add dword [ebx + 0x3c], eax
test byte [ebx + 0x170], 2
je 0x5553ae
push ebx
call fcn.00565ab0
mov dword [ebp - 0x10], eax
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x55533a
add dword [ebx + 0x98], 1
mov edx, dword [ebx + 0x50]
adc dword [ebx + 0x9c], 0
and byte [ebx + 0x16f], 0xfb
test byte [ebx + 0x168], 1
je 0x554c10
test byte [ebx + 0x16b], 8
je 0x554c10
cmp byte [ebx + 0x155], 2
jne 0x554c10
lea ecx, [edx + 1]
mov dword [ebx + 0x3c], ecx
jmp 0x554c15
mov dword [ebx + 0x3c], edx
mov ecx, edx
mov eax, dword [ebp - 0x1d4]
sub edi, eax
add dword [ebp - 0x1ac], eax
add edx, dword [ebx + 0xf8]
mov dword [ebx + 0x44], edx
mov dword [ebp - 0x14], edi
lea eax, [ecx + edi]
cmp edx, eax
jae 0x554cd0
mov dword [ebp - 0x1e8], esi
mov esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp - 0x1ac]
call fcn.0059f8e0
push ebx
add dword [ebx + 0x3c], esi
call fcn.00565ab0
add esp, 0x10
test eax, eax
jne 0x5556e9
add dword [ebx + 0x98], 1
mov edx, dword [ebx + 0x50]
adc dword [ebx + 0x9c], 0
and byte [ebx + 0x16f], 0xfb
test byte [ebx + 0x168], 1
je 0x554ca0
test byte [ebx + 0x16b], 8
je 0x554ca0
cmp byte [ebx + 0x155], 2
jne 0x554ca0
lea ecx, [edx + 1]
mov dword [ebx + 0x3c], ecx
jmp 0x554ca5
mov dword [ebx + 0x3c], edx
mov ecx, edx
mov edi, dword [ebp - 0x14]
sub edi, esi
add dword [ebp - 0x1ac], esi
add edx, dword [ebx + 0xf8]
mov dword [ebx + 0x44], edx
mov dword [ebp - 0x14], edi
lea esi, [ecx + edi]
cmp edx, esi
jb 0x554c40
mov dword [ebp - 0x10], eax
mov esi, dword [ebp - 0x1e8]
push dword [ebp - 0x14]
push ecx
push dword [ebp - 0x1ac]
call fcn.0059f8e0
add esp, 0xc
mov eax, edi
add dword [ebx + 0x3c], eax
cmp dword [ebp - 0x1c0], 0
je 0x5552fc
mov eax, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1ac], edx
jmp 0x555277
mov eax, dword [ebp - 0x1ac]
cmp dword [ebp - 0x1c0], 0
lea eax, [eax + edi]
je 0x5550d1
test byte [ebp - 0x1dc], 3
jne 0x554fd5
test cl, 3
jne 0x554fd5
cmp dword [ebp - 0x1bc], 4
je 0x554f5a
cmp dword [ebp - 0x1bc], 8
jne 0x554dfc
cmp eax, dword [ebp - 0x1ac]
jbe 0x555436
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax + 4]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
mov esi, dword [eax]
or ebx, ecx
mov ecx, esi
mov edi, esi
mov dword [edx], ebx
and ecx, 0xff0000
mov ebx, esi
shr edi, 0x18
and ebx, 0xff00
shr ecx, 8
shl ebx, 8
or edi, ecx
shl esi, 0x18
or edi, ebx
or edi, esi
mov esi, dword [ebp - 0x1bc]
add eax, esi
mov dword [edx + 4], edi
add edx, esi
cmp edx, dword [ebp - 0x1e4]
jb 0x554d81
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5548ba
cmp dword [ebp - 0x1bc], 0x10
jne 0x554f13
cmp eax, dword [ebp - 0x1ac]
jbe 0x555436
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x374], ebx
mov esi, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x19c]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, eax
mov dword [ebp - 0x378], edi
mov edi, eax
and edi, 0xff0000
shr edx, 0x18
shr edi, 8
or edx, edi
mov edi, eax
and edi, 0xff00
shl edi, 8
shl eax, 0x18
or edx, edi
or edx, eax
mov edi, ebx
mov dword [esi], edx
mov edx, ebx
and edx, 0xff0000
mov eax, ebx
shr edi, 0x18
and eax, 0xff00
shr edx, 8
shl eax, 8
or edi, edx
shl ebx, 0x18
or edi, eax
or edi, ebx
mov ebx, ecx
mov edx, ecx
and ebx, 0xff0000
mov eax, ecx
shr edx, 0x18
and eax, 0xff00
shr ebx, 8
shl eax, 8
or edx, ebx
shl ecx, 0x18
or edx, eax
or edx, ecx
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x378]
mov ecx, edx
mov ebx, edx
and ecx, 0xff0000
mov eax, edx
shr ebx, 0x18
and eax, 0xff00
shr ecx, 8
shl eax, 8
or ebx, ecx
shl edx, 0x18
or ebx, eax
mov ecx, dword [ebp - 0x1bc]
or ebx, edx
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
add esi, ecx
add dword [ebp - 0x19c], ecx
cmp esi, dword [ebp - 0x1e4]
jb 0x554e2d
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5548ba
cmp eax, dword [ebp - 0x1ac]
jbe 0x555436
mov dword [ebp - 0x374], ebx
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x19c]
movzx edx, word [edi]
add edi, ecx
rol dx, 8
mov word [ebx], dx
add ebx, ecx
cmp ebx, eax
jb 0x554f37
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x5548ba
cmp eax, dword [ebp - 0x1ac]
jbe 0x555436
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov edx, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
add eax, edx
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
or ebx, ecx
mov dword [esi], ebx
add esi, edx
cmp esi, dword [ebp - 0x1e4]
jb 0x554f8a
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5548ba
cmp eax, dword [ebp - 0x1ac]
jbe 0x555436
mov edx, dword [ebp - 0x1bc]
mov ecx, edx
shr ecx, 0x1f
mov edi, edx
add ecx, edx
sar ecx, 1
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov dword [ebp - 0x1a8], ecx
mov dword [ebp - 0x1e4], eax
mov esi, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x19c]
cmp edi, 1
je 0x55544b
cmp dword [ebp - 0x1a8], 0
jle 0x5550aa
xor ecx, ecx
lea eax, [edi + ebx]
mov dword [ebp - 0x1a0], eax
xor eax, eax
mov dword [ebp - 0x1ac], esi
lea edx, [edi + esi]
mov dword [ebp - 0x1a4], edx
xor edx, edx
mov dword [ebp - 0x19c], ebx
mov esi, dword [ebp - 0x19c]
mov dword [ebp - 0x198], eax
mov edi, dword [ebp - 0x1ac]
movzx eax, byte [ecx + esi]
mov esi, dword [ebp - 0x1a0]
movzx ebx, byte [edx + esi - 1]
xor eax, ebx
mov byte [ecx + edi], bl
inc ecx
movzx ebx, byte [edx + esi - 1]
dec edx
mov edi, dword [ebp - 0x1a4]
xor ebx, eax
mov eax, dword [ebp - 0x198]
mov byte [eax + edi - 1], bl
dec eax
cmp ecx, dword [ebp - 0x1a8]
jl 0x555050
mov edi, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x19c]
add esi, edi
add ebx, edi
cmp esi, dword [ebp - 0x1e4]
jb 0x555016
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5548ba
cmp dword [ebp - 0x1d8], 0
je 0x555249
test byte [ebp - 0x1dc], 7
jne 0x555249
test cl, 7
jne 0x555249
cmp dword [ebp - 0x1bc], 4
je 0x555208
cmp dword [ebp - 0x1bc], 8
jne 0x55515d
cmp eax, dword [ebp - 0x1ac]
jbe 0x555455
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov ebx, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x19c]
mov edx, dword [edi]
mov ecx, dword [edi + 4]
add edi, ebx
mov dword [esi], edx
mov dword [esi + 4], ecx
add esi, ebx
cmp esi, eax
jb 0x555134
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5552fc
cmp dword [ebp - 0x1bc], 0x10
jne 0x5551c5
cmp eax, dword [ebp - 0x1ac]
jbe 0x555455
mov dword [ebp - 0x374], ebx
mov dword [ebp - 0x1e8], esi
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x19c]
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
add ebx, edx
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edi
add ecx, edx
cmp ecx, eax
jb 0x555190
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x5552fc
cmp eax, dword [ebp - 0x1ac]
jbe 0x555455
mov dword [ebp - 0x374], ebx
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x19c]
movzx edx, word [edi]
add edi, ecx
mov word [ebx], dx
add ebx, ecx
cmp ebx, eax
jb 0x5551e9
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x5552fc
cmp eax, dword [ebp - 0x1ac]
jbe 0x555455
mov dword [ebp - 0x374], ebx
mov ecx, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x19c]
mov edx, dword [edi]
add edi, ecx
mov dword [ebx], edx
add ebx, ecx
cmp ebx, eax
jb 0x55522c
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x5552fc
push dword [ebp - 0x14]
push dword [ebp - 0x19c]
push dword [ebp - 0x1ac]
call fcn.0059f8e0
add esp, 0xc
mov eax, edi
add dword [ebx + 0x3c], eax
jmp 0x5552fc
cmp dword [ebp - 0x1c0], 0
je 0x5552fc
mov eax, dword [ebp - 0x1ac]
add dword [ebp - 0x1b8], eax
test byte [ebp - 0x1dc], 3
jne 0x5552eb
cmp dword [ebp - 0x1bc], 4
je 0x5552da
cmp dword [ebp - 0x1bc], 8
jne 0x5552af
cmp eax, dword [ebp - 0x1b8]
jb 0x555482
jmp 0x5548ba
cmp dword [ebp - 0x1bc], 0x10
jne 0x5552c9
cmp eax, dword [ebp - 0x1b8]
jb 0x555507
jmp 0x5548ba
cmp eax, dword [ebp - 0x1b8]
jb 0x5555e9
jmp 0x5548ba
cmp eax, dword [ebp - 0x1b8]
jb 0x55560a
jmp 0x5548ba
cmp eax, dword [ebp - 0x1b8]
jb 0x555667
jmp 0x5548ba
cmp dword [ebp - 0x1e0], 0
je 0x5548ba
push dword [ebp - 0x14]
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00566740
mov dword [ebp - 0x10], eax
add esp, 0xc
cmp dword [ebp - 0x10], 0
je 0x5548ba
push 0
push 0x5f
call fcn.00560040
add esp, 8
jmp 0x5548ba
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x555397
test byte [edx + 0x44], 2
je 0x555375
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x55536b
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x64], ecx
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x18]
test eax, eax
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x55541a
test byte [eax + 0x44], 2
je 0x5553f3
mov edx, 0x43
mov dword [eax + 0x38], edx
mov eax, dword [ebx + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x5553e4
xor edx, edx
mov dword [eax + 4], edx
mov dword [ebx + 0x64], edx
mov eax, 0x43
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 0x43
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
mov eax, 0x43
push eax
push eax
push 1
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x3c], edx
cmp dword [ebp - 0x1c0], 0
jne 0x5548ba
jmp 0x5552fc
movzx eax, byte [ebx]
mov byte [esi], al
jmp 0x5550aa
mov dword [ebx + 0x3c], edx
cmp dword [ebp - 0x1c0], 0
je 0x5552fc
mov eax, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1ac], edx
jmp 0x555277
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [edx + 4]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
mov esi, dword [edx]
or ebx, ecx
mov ecx, esi
mov edi, esi
mov dword [edx], ebx
and ecx, 0xff0000
mov ebx, esi
shr edi, 0x18
and ebx, 0xff00
shr ecx, 8
shl ebx, 8
or edi, ecx
shl esi, 0x18
or edi, ebx
or edi, esi
mov dword [edx + 4], edi
add edx, dword [ebp - 0x1bc]
cmp edx, eax
jb 0x55549a
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x5548ba
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov esi, eax
mov edi, dword [esi]
mov edx, dword [esi + 0xc]
mov ecx, edx
mov dword [ebp - 0x37c], edi
mov edi, edx
and edi, 0xff0000
shr ecx, 0x18
shr edi, 8
or ecx, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
shl edx, 0x18
or ecx, edi
mov ebx, dword [esi + 8]
or ecx, edx
mov edx, ebx
mov edi, ebx
mov dword [esi], ecx
and edx, 0xff0000
mov ecx, ebx
shr edi, 0x18
and ecx, 0xff00
shr edx, 8
shl ecx, 8
or edi, edx
shl ebx, 0x18
or edi, ecx
mov eax, dword [esi + 4]
or edi, ebx
mov ebx, eax
mov ecx, eax
and ebx, 0xff0000
mov edx, eax
shr ecx, 0x18
and edx, 0xff00
shr ebx, 8
shl edx, 8
or ecx, ebx
shl eax, 0x18
or ecx, edx
or ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [ebp - 0x37c]
mov eax, ecx
mov ebx, ecx
and eax, 0xff0000
mov edx, ecx
shr ebx, 0x18
and edx, 0xff00
shr eax, 8
shl edx, 8
or ebx, eax
shl ecx, 0x18
or ebx, edx
or ebx, ecx
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
add esi, dword [ebp - 0x1bc]
cmp esi, dword [ebp - 0x1b8]
jb 0x555515
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x5548ba
mov eax, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1ac]
rol word [ecx], 8
add ecx, eax
cmp ecx, edx
jb 0x5555fb
jmp 0x5548ba
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1b8]
mov esi, dword [ebp - 0x1ac]
mov ecx, dword [esi]
mov edi, ecx
mov ebx, ecx
and edi, 0xff0000
shr ebx, 0x18
shr edi, 8
or ebx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
shl ecx, 0x18
or ebx, edi
or ebx, ecx
mov dword [esi], ebx
add esi, edx
cmp esi, eax
jb 0x555628
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x5548ba
mov eax, dword [ebp - 0x1bc]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jle 0x5548ba
mov dword [ebp - 0x1ec], edx
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x374], ebx
mov edx, eax
mov eax, dword [ebp - 0x1ac]
xor esi, esi
lea ebx, [edx + eax]
mov dword [ebp - 0x1ac], eax
xor edi, edi
mov ecx, eax
movzx edx, byte [ecx]
inc esi
movzx eax, byte [edi + ebx - 1]
xor edx, eax
mov byte [ecx], al
inc ecx
xor byte [edi + ebx - 1], dl
dec edi
cmp esi, dword [ebp - 0x1ec]
jl 0x5556a7
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1ac]
add eax, edx
cmp eax, dword [ebp - 0x1b8]
jb 0x555698
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x5548ba
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x555746
test byte [edx + 0x44], 2
je 0x555724
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x55571a
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x64], ecx
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
cmp dword [ebp - 0x1c8], 1
jne 0x554a82
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x5557cc
movsx edx, byte [ebx + 0x157]
add edx, 0xfffffffb
cmp edx, 0xc
ja case.default.0x55579a
mov edx, dword [edx*4 + 0x5c5c14]
jmp edx
mov edx, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x9c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x5557cc
mov edx, dword [ebx + 0x98]
mov dword [eax], edx
jmp 0x5557cc
mov edx, dword [ebx + 0x98]
mov word [eax], dx
jmp 0x5557cc
mov edx, dword [ebx + 0x98]
mov byte [eax], dl
push dword [ebx + 0x100]
and byte [ebx + 0x16c], 0xdc
and byte [ebx + 0x16e], 0xf7
call fcn.0055c0e0
add esp, 4
test eax, eax
je 0x55583d
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x55585e
test byte [edx + 0x44], 2
je 0x55581b
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x555811
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x64], ecx
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1f0]
mov dword [edx + 4], 0
jmp 0x554a82
mov eax, 0x30
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 0
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 1
mov dword [ebp - 4], eax
jmp 0x55480d
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x5558df
test byte [edx + 0x44], 2
je 0x5558bd
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x5558b3
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x64], ecx
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [ebx + 0x16c]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push ebx
call fcn.005640b0
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.0055df70
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret