Function at 0x4f61a0
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.00501270
mov dword [ebp - 0x10], eax
add esp, 0x10
cmp dword [ebp - 0x10], 0
jne 0x4f7502
mov ecx, dword [ebp - 0x1c8]
cmp ecx, 2
je 0x4f74f5
cmp ecx, 1
je 0x4f74f5
movzx eax, byte [ebx + 0x16d]
test al, 0x20
mov dword [ebp - 0x1b4], eax
je 0x4f629a
movsx eax, byte [ebx + 0x158]
test eax, eax
jne 0x4f629a
cmp dword [ebp - 0x1c4], 1
jle 0x4f629a
cmp ecx, 5
jl 0x4f629a
cmp ecx, 0x11
jle 0x4f628d
cmp ecx, 0x19
jl 0x4f629a
cmp ecx, 0x1f
jle 0x4f628d
cmp ecx, 0x32
jl 0x4f6283
cmp ecx, 0x34
jle 0x4f628d
jmp 0x4f629a
cmp ecx, 0x28
jl 0x4f629a
cmp ecx, 0x30
jg 0x4f629a
mov eax, 1
mov dword [ebp - 0x1c0], eax
jmp 0x4f62a2
xor eax, eax
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x370]
cmp eax, 7
jl 0x4f63d6
cmp eax, 8
jg 0x4f63d6
mov eax, dword [ebp - 0x1c4]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x4f62d7
mov eax, dword [ebp - 0x1cc]
cdq
mov esi, dword [ebp - 0x14]
idiv esi
mov esi, eax
jmp 0x4f62d9
xor esi, esi
test esi, esi
je 0x4f63ca
cmp ecx, 0x34
je 0x4f62f0
cmp ecx, 0x1c
jl 0x4f62fd
cmp ecx, 0x2c
jg 0x4f62fd
mov eax, 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
jmp 0x4f6304
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x36c]
test eax, eax
jle 0x4f6370
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x35c]
jne 0x4f6330
mov edx, dword [ebp - 0x360]
cmp edx, dword [ebp - 0x364]
jg 0x4f6330
cmp edx, 1
je 0x4f65eb
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 0x4f6338
mov ebx, dword [ebp - 0x374]
xor edx, edx
test eax, eax
jle 0x4f63a1
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 0x4f637e
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.00501790
add esp, 0xc
jmp 0x4f648d
mov dword [ebp - 8], 1
jmp 0x4f648d
cmp eax, 6
je 0x4f63e4
cmp eax, 5
jne 0x4f6460
cmp dword [ebp - 0x1c4], 0
je 0x4f6451
mov eax, dword [ebp - 0x1cc]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x4f6456
test byte [ebp - 0x1b4], 0x10
je 0x4f6441
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00501e40
add esp, 8
test eax, eax
je 0x4f6448
cmp dword [ebp - 0x1c0], 0
jne 0x4f6441
mov eax, dword [ebp - 0x1c4]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x4f643d
mov eax, dword [ebp - 0x1cc]
cdq
mov ecx, dword [ebp - 0x14]
idiv ecx
mov esi, eax
jmp 0x4f648d
xor esi, esi
jmp 0x4f648d
mov esi, 1
jmp 0x4f648d
mov esi, 1
xor edi, edi
jmp 0x4f648d
xor eax, eax
mov dword [ebp - 0x14], eax
mov esi, 1
mov dword [ebp - 8], esi
jmp 0x4f648d
cmp ecx, 0x34
je 0x4f647f
cmp ecx, 0x1c
jl 0x4f646f
cmp ecx, 0x2c
jle 0x4f647f
mov eax, dword [ebp - 0x1cc]
mov esi, 1
mov dword [ebp - 0x14], eax
jmp 0x4f648d
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 0x4f6526
and eax, 0xffffffdf
mov byte [ebx + 0x16f], al
cmp esi, 1
je 0x4f6745
push ebx
call fcn.00507be0
mov dword [ebp - 0x10], eax
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x4f66d1
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 0x4f650e
test byte [ebx + 0x16b], 8
je 0x4f650e
cmp byte [ebx + 0x155], 2
jne 0x4f650e
lea edx, [ecx + 1]
mov dword [ebx + 0x3c], edx
jmp 0x4f6511
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 0x4f73dd
cmp dword [ebp - 8], 0
je 0x4f676b
cmp esi, 1
jle 0x4f61ee
mov eax, dword [ebp - 0x370]
cmp eax, 7
je 0x4f6557
cmp eax, 8
jne 0x4f65d6
cmp dword [ebp - 0xc], 0
je 0x4f6574
mov eax, dword [ebp - 0x1c4]
xor edx, edx
add dword [ebp - 0x1d0], eax
dec esi
mov dword [ebp - 0xc], edx
jmp 0x4f6493
cmp dword [ebp - 0x18], 0
mov edx, dword [ebp - 0xc]
je 0x4f6582
mov edx, 1
xor eax, eax
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x36c]
test edx, edx
jle 0x4f65b0
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 0x4f6593
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.00501790
add esp, 0xc
jmp 0x4f65e5
mov eax, dword [ebp - 0x1c4]
add dword [ebp - 0x1d0], eax
mov dword [ebp - 0x14], eax
dec esi
jmp 0x4f6493
cmp eax, 1
jg 0x4f6669
test byte [ebp - 0x1b4], 0x10
je 0x4f6629
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00501e40
add esp, 8
test eax, eax
je 0x4f6648
cmp dword [ebp - 0x1c0], 0
jne 0x4f6629
mov eax, dword [ebp - 0x36c]
test eax, eax
jg 0x4f6330
jmp 0x4f6370
mov eax, dword [ebp - 0x1cc]
mov esi, 1
mov edx, dword [ebp - 0x368]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1d0], edx
jmp 0x4f648d
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 0x4f648d
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 0x4f6695
mov ebx, dword [ebp - 0x374]
jmp 0x4f6330
cmp ebx, dword [ebp + edx - 0x364]
jg 0x4f668a
mov ebx, dword [ebp + edx - 0x370]
imul ebx, dword [ebp + edx - 0x368]
cmp ebx, dword [ebp + edx - 0x35c]
je 0x4f66c1
mov ebx, dword [ebp - 0x374]
jmp 0x4f6330
inc ecx
cmp ecx, eax
jl 0x4f6674
mov ebx, dword [ebp - 0x374]
jmp 0x4f65f0
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x4f672e
test byte [edx + 0x44], 2
je 0x4f670c
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x4f6702
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.00500a40
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.004fa8e0
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 1
jne 0x4f64b4
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x14]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x134], edx
jmp 0x4f64b4
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 0x4f67bf
mov edx, 1
shl edx, cl
test edx, 0x808a
je 0x4f67bf
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 0x4f67de
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 0x4f6eea
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 0x4f6991
mov edx, dword [ebp - 0x19c]
sub eax, edx
push eax
mov dword [ebp - 0x1d4], eax
push edx
push dword [ebp - 0x1ac]
call fcn.0053ba70
add esp, 0xc
mov eax, dword [ebp - 0x1d4]
add dword [ebx + 0x3c], eax
test byte [ebx + 0x170], 2
je 0x4f702e
push ebx
call fcn.00507be0
mov dword [ebp - 0x10], eax
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x4f6fba
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 0x4f6890
test byte [ebx + 0x16b], 8
je 0x4f6890
cmp byte [ebx + 0x155], 2
jne 0x4f6890
lea ecx, [edx + 1]
mov dword [ebx + 0x3c], ecx
jmp 0x4f6895
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 0x4f6950
mov dword [ebp - 0x1e8], esi
mov esi, edx
sub esi, ecx
push esi
push ecx
push dword [ebp - 0x1ac]
call fcn.0053ba70
push ebx
add dword [ebx + 0x3c], esi
call fcn.00507be0
add esp, 0x10
test eax, eax
jne 0x4f7369
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 0x4f6920
test byte [ebx + 0x16b], 8
je 0x4f6920
cmp byte [ebx + 0x155], 2
jne 0x4f6920
lea ecx, [edx + 1]
mov dword [ebx + 0x3c], ecx
jmp 0x4f6925
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 0x4f68c0
mov dword [ebp - 0x10], eax
mov esi, dword [ebp - 0x1e8]
push dword [ebp - 0x14]
push ecx
push dword [ebp - 0x1ac]
call fcn.0053ba70
add esp, 0xc
mov eax, edi
add dword [ebx + 0x3c], eax
cmp dword [ebp - 0x1c0], 0
je 0x4f6f7c
mov eax, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1ac], edx
jmp 0x4f6ef7
mov eax, dword [ebp - 0x1ac]
cmp dword [ebp - 0x1c0], 0
lea eax, [eax + edi]
je 0x4f6d51
test byte [ebp - 0x1dc], 3
jne 0x4f6c55
test cl, 3
jne 0x4f6c55
cmp dword [ebp - 0x1bc], 4
je 0x4f6bda
cmp dword [ebp - 0x1bc], 8
jne 0x4f6a7c
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70b6
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 0x4f6a01
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f653a
cmp dword [ebp - 0x1bc], 0x10
jne 0x4f6b93
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70b6
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 0x4f6aad
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f653a
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70b6
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 0x4f6bb7
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x4f653a
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70b6
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 0x4f6c0a
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f653a
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70b6
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 0x4f70cb
cmp dword [ebp - 0x1a8], 0
jle 0x4f6d2a
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 0x4f6cd0
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 0x4f6c96
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f653a
cmp dword [ebp - 0x1d8], 0
je 0x4f6ec9
test byte [ebp - 0x1dc], 7
jne 0x4f6ec9
test cl, 7
jne 0x4f6ec9
cmp dword [ebp - 0x1bc], 4
je 0x4f6e88
cmp dword [ebp - 0x1bc], 8
jne 0x4f6ddd
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70d5
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 0x4f6db4
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f6f7c
cmp dword [ebp - 0x1bc], 0x10
jne 0x4f6e45
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70d5
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 0x4f6e10
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1e8]
add dword [ebx + 0x3c], eax
jmp 0x4f6f7c
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70d5
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 0x4f6e69
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x4f6f7c
cmp eax, dword [ebp - 0x1ac]
jbe 0x4f70d5
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 0x4f6eac
mov ebx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x14]
add dword [ebx + 0x3c], eax
jmp 0x4f6f7c
push dword [ebp - 0x14]
push dword [ebp - 0x19c]
push dword [ebp - 0x1ac]
call fcn.0053ba70
add esp, 0xc
mov eax, edi
add dword [ebx + 0x3c], eax
jmp 0x4f6f7c
cmp dword [ebp - 0x1c0], 0
je 0x4f6f7c
mov eax, dword [ebp - 0x1ac]
add dword [ebp - 0x1b8], eax
test byte [ebp - 0x1dc], 3
jne 0x4f6f6b
cmp dword [ebp - 0x1bc], 4
je 0x4f6f5a
cmp dword [ebp - 0x1bc], 8
jne 0x4f6f2f
cmp eax, dword [ebp - 0x1b8]
jb 0x4f7102
jmp 0x4f653a
cmp dword [ebp - 0x1bc], 0x10
jne 0x4f6f49
cmp eax, dword [ebp - 0x1b8]
jb 0x4f7187
jmp 0x4f653a
cmp eax, dword [ebp - 0x1b8]
jb 0x4f7269
jmp 0x4f653a
cmp eax, dword [ebp - 0x1b8]
jb 0x4f728a
jmp 0x4f653a
cmp eax, dword [ebp - 0x1b8]
jb 0x4f72e7
jmp 0x4f653a
cmp dword [ebp - 0x1e0], 0
je 0x4f653a
push dword [ebp - 0x14]
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.005017f0
mov dword [ebp - 0x10], eax
add esp, 0xc
cmp dword [ebp - 0x10], 0
je 0x4f653a
push 0
push 0x5f
call fcn.004fc9b0
add esp, 8
jmp 0x4f653a
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x4f7017
test byte [edx + 0x44], 2
je 0x4f6ff5
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x4f6feb
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.00500a40
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4f709a
test byte [eax + 0x44], 2
je 0x4f7073
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 0x4f7064
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.00500a40
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.004fa8e0
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 0x4f653a
jmp 0x4f6f7c
movzx eax, byte [ebx]
mov byte [esi], al
jmp 0x4f6d2a
mov dword [ebx + 0x3c], edx
cmp dword [ebp - 0x1c0], 0
je 0x4f6f7c
mov eax, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1ac], edx
jmp 0x4f6ef7
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 0x4f711a
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x4f653a
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 0x4f7195
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x4f653a
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 0x4f727b
jmp 0x4f653a
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 0x4f72a8
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x4f653a
mov eax, dword [ebp - 0x1bc]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jle 0x4f653a
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 0x4f7327
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1ac]
add eax, edx
cmp eax, dword [ebp - 0x1b8]
jb 0x4f7318
mov esi, dword [ebp - 0x1e8]
mov ebx, dword [ebp - 0x374]
jmp 0x4f653a
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x4f73c6
test byte [edx + 0x44], 2
je 0x4f73a4
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x4f739a
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.00500a40
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.004fa8e0
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 0x4f6702
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x4f744c
movsx edx, byte [ebx + 0x157]
add edx, 0xfffffffb
cmp edx, 0xc
ja case.default.0x4f741a
mov edx, dword [edx*4 + 0x561b8c]
jmp edx
mov edx, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x9c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4f744c
mov edx, dword [ebx + 0x98]
mov dword [eax], edx
jmp 0x4f744c
mov edx, dword [ebx + 0x98]
mov word [eax], dx
jmp 0x4f744c
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.004f82c0
add esp, 4
test eax, eax
je 0x4f74bd
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x4f74de
test byte [edx + 0x44], 2
je 0x4f749b
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x4f7491
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.00500a40
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 0x4f6702
mov eax, 0x30
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 0
call fcn.004fa8e0
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
mov eax, 1
mov dword [ebp - 4], eax
jmp 0x4f648d
mov edx, dword [ebx + 0x18]
test edx, edx
mov esi, dword [ebp - 0x194]
mov edi, dword [ebp - 0x190]
je 0x4f755f
test byte [edx + 0x44], 2
je 0x4f753d
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x18]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x4f7533
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.00500a40
add esp, 0x14
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret
push ebx
push eax
push eax
push 1
call fcn.004fa8e0
add esp, 0x10
mov ebx, dword [ebp - 0x1b0]
mov esp, ebp
pop ebp
ret