Function at 0x4eec50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xd8
call fcn.00629030
mov eax, dword [0x70d514]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
shr ebx, 3
xor esi, esi
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xc8], 0
mov dword [ebp + 8], ebx
push edi
mov edi, dword [ebp + 0x24]
mov dword [ebp - 0xac], edi
cmp ebx, 0x14
je 0x4eecb9
cmp ebx, 0x1c
je 0x4eecb9
cmp ebx, 0x20
je 0x4eecb9
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x4eece6
cmp ebx, 0x14
jne 0x4eecce
mov dword [ebp - 0x9c], 0x694b24
jmp 0x4eecec
cmp ebx, 0x1c
mov eax, 0x694d04
mov ecx, 0x694d64
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x4eecec
mov ebx, dword [eax + 8]
mov dword [ebp + 8], ebx
mov eax, 0x200
cmp edx, eax
cmovae eax, edx
add eax, 0x3f
and eax, 0xffffffc0
mov dword [ebp - 0xbc], eax
call fcn.00494a20
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x4efe9d
call fcn.004a06d0
mov dword [ebp - 0x88], eax
test eax, eax
je 0x4efe99
mov ecx, eax
call fcn.004a0870
mov ecx, dword [ebp - 0x88]
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x90], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xb0], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa0], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa8], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xc0], eax
call fcn.004a09e0
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x98], eax
call fcn.004a09e0
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4efe31
mov ecx, dword [ebp - 0xbc]
mov edx, 0x695e00
dec ecx
push ecx
mov ecx, eax
call fcn.004be480
add esp, 4
test eax, eax
je 0x4efe31
nop
test edi, edi
je 0x4eee22
mov eax, dword [edi]
sub eax, 1
je 0x4eee10
sub eax, 1
jne 0x4efe31
push edi
push esi
push eax
mov eax, dword [edi + 8]
call eax
inc esi
add esp, 0xc
mov dword [ebp - 0x8c], esi
test eax, eax
je 0x4efe31
jmp 0x4eee29
mov eax, dword [edi + 8]
test eax, eax
je 0x4eee22
push dword [edi + 4]
push esi
push 0
call eax
add esp, 0xc
inc esi
mov dword [ebp - 0x8c], esi
call fcn.0047f540
test eax, eax
je 0x4efe15
mov eax, dword [eax + 4]
test eax, eax
je 0x4efe15
lea ecx, [ebp - 0x84]
push ebx
push ecx
call eax
add esp, 8
test eax, eax
jle 0x4efe31
push ebx
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0062bbe0
push ebx
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0062bbe0
lea eax, [ebx - 1]
add esp, 0x18
test eax, eax
js 0x4eee8e
add byte [ebp + eax - 0x64], 1
jne 0x4eee8e
sub eax, 1
jns 0x4eee82
push 0x18
mov dword [0x70e32c], 0
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efe31
push 0
push dword [ebp - 0x9c]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
push esi
movq qword [esi + 0x10], xmm0
or dword [esi + 8], 1
call fcn.00478380
add esp, 0xc
test eax, eax
je 0x4ef724
test ebx, ebx
je 0x4eeef1
push ebx
lea eax, [ebp - 0x84]
push eax
mov eax, dword [esi + 0x14]
push esi
call eax
add esp, 0xc
test eax, eax
je 0x4ef724
mov eax, dword [esi]
cmp dword [eax + 8], 0x40
jg 0x4efec8
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x24]
push ecx
push esi
call eax
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4eef21
push esi
call ecx
mov eax, dword [esi]
add esp, 4
or dword [esi + 8], 2
push dword [eax + 0x28]
push dword [esi + 0xc]
call fcn.00401320
add esp, 8
test edi, edi
je 0x4ef724
mov ecx, esi
call fcn.00478250
push esi
call fcn.0062fb07
mov edi, dword [ebp - 0x8c]
push 0x18
mov dword [0x70e32c], 0
call fcn.0063320d
mov esi, eax
add esp, 8
test esi, esi
je 0x4efe31
push 0
push dword [ebp - 0x9c]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
push esi
movq qword [esi + 0x10], xmm0
or dword [esi + 8], 1
call fcn.00478380
add esp, 0xc
test eax, eax
je 0x4ef724
test ebx, ebx
je 0x4eefaa
push ebx
lea eax, [ebp - 0x64]
push eax
mov eax, dword [esi + 0x14]
push esi
call eax
add esp, 0xc
test eax, eax
je 0x4ef724
mov eax, dword [esi]
cmp dword [eax + 8], 0x40
jg 0x4efec8
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x44]
push ecx
push esi
call eax
mov ebx, eax
add esp, 8
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4eefda
push esi
call ecx
mov eax, dword [esi]
add esp, 4
or dword [esi + 8], 2
push dword [eax + 0x28]
push dword [esi + 0xc]
call fcn.00401320
add esp, 8
test ebx, ebx
je 0x4ef724
mov ecx, esi
call fcn.00478250
push esi
call fcn.0062fb07
mov ebx, dword [ebp + 8]
add esp, 4
xor ecx, ecx
mov esi, edi
mov dword [ebp - 0x8c], esi
test ebx, ebx
jle 0x4ef0a4
mov dword [ebp - 0x8c], esi
cmp ebx, 0x40
jb 0x4ef097
mov eax, ebx
and eax, 0x8000003f
jns 0x4ef02e
dec eax
or eax, 0xffffffc0
inc eax
mov edx, ebx
mov esi, edi
sub edx, eax
mov dword [ebp - 0x8c], esi
nop word [eax + eax]
movups xmm0, xmmword [ebp + ecx - 0x24]
movups xmm1, xmmword [ebp + ecx - 0x44]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 0x24], xmm1
movups xmm0, xmmword [ebp + ecx - 0x14]
movups xmm1, xmmword [ebp + ecx - 0x34]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 0x14], xmm1
movups xmm0, xmmword [ebp + ecx - 4]
movups xmm1, xmmword [ebp + ecx - 0x24]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 4], xmm1
movups xmm0, xmmword [ebp + ecx + 0xc]
movups xmm1, xmmword [ebp + ecx - 0x14]
pxor xmm1, xmm0
movups xmmword [ebp + ecx + 0xc], xmm1
add ecx, 0x40
cmp ecx, edx
jl 0x4ef040
cmp ecx, ebx
jge 0x4ef0a4
mov al, byte [ebp + ecx - 0x44]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, ebx
jl 0x4ef097
or byte [ebp - 0x24], 0x80
lea ecx, [ebp - 0x24]
push dword [ebp - 0xa8]
or byte [ebp + ebx - 0x25], 1
mov edx, ebx
call fcn.00474c50
add esp, 4
test eax, eax
je 0x4efe31
mov edi, dword [ebp - 0xac]
mov edx, 0x40
mov ecx, dword [ebp - 0xa8]
push edi
push 1
push dword [ebp - 0x88]
call fcn.00512da0
add esp, 0xc
test eax, eax
jg 0x4ef0f9
je 0x4eede0
jmp 0x4efe31
test edi, edi
je 0x4ef16f
mov eax, dword [edi]
sub eax, 1
je 0x4ef123
sub eax, 1
jne 0x4efe31
push edi
push eax
mov eax, dword [edi + 8]
push 2
call eax
add esp, 0xc
test eax, eax
je 0x4efe31
jmp 0x4ef136
mov eax, dword [edi + 8]
test eax, eax
je 0x4ef136
push dword [edi + 4]
push 0
push 2
call eax
add esp, 0xc
mov eax, dword [edi]
sub eax, 1
je 0x4ef15c
sub eax, 1
jne 0x4efe31
push edi
push eax
mov eax, dword [edi + 8]
push 3
call eax
add esp, 0xc
test eax, eax
je 0x4efe31
jmp 0x4ef16f
mov eax, dword [edi + 8]
test eax, eax
je 0x4ef16f
push dword [edi + 4]
push 0
push 3
call eax
add esp, 0xc
mov ecx, dword [ebp - 0xbc]
mov eax, 0xcccccccd
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0xc4], 0
lea ecx, [ecx - 1]
mul ecx
lea eax, [ebx - 1]
shr edx, 7
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xd4], eax
test edx, edx
je 0x4ef1ec
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x4ef1ec
mov eax, dword [ecx]
sub eax, 1
je 0x4ef1da
sub eax, 1
jne 0x4efe31
push ecx
push edx
push eax
mov eax, dword [ecx + 8]
call eax
add esp, 0xc
test eax, eax
je 0x4efe31
jmp 0x4ef1ec
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ef1ec
push dword [ecx + 4]
push edx
push 0
call eax
add esp, 0xc
cmp dword [edi + 8], 1
jl 0x4ef1f6
mov eax, edi
jmp 0x4ef202
mov edx, 1
mov ecx, edi
call fcn.004749e0
test eax, eax
je 0x4ef21c
mov eax, dword [edi]
mov dword [edi + 0xc], 0
mov dword [eax], 0
mov dword [edi + 4], 0
xor ebx, ebx
mov dword [ebp - 0xcc], ebx
cmp dword [ebp - 0xd0], ebx
jl 0x4ef478
mov eax, dword [ebp - 0xd4]
test eax, eax
js 0x4ef24c
nop word [eax + eax]
add byte [ebp + eax - 0x64], 1
jne 0x4ef24c
sub eax, 1
jns 0x4ef240
push 0x18
mov dword [ebp - 0x8c], esi
mov dword [0x70e32c], 0
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efe31
push 0
push dword [ebp - 0x9c]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
push esi
movq qword [esi + 0x10], xmm0
or dword [esi + 8], 1
call fcn.00478380
add esp, 0xc
test eax, eax
je 0x4ef724
mov eax, dword [ebp + 8]
test eax, eax
je 0x4ef2b5
push eax
lea eax, [ebp - 0x64]
push eax
mov eax, dword [esi + 0x14]
push esi
call eax
add esp, 0xc
test eax, eax
je 0x4ef724
mov eax, dword [esi]
cmp dword [eax + 8], 0x40
jg 0x4efec8
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x24]
push ecx
push esi
call eax
mov edi, eax
add esp, 8
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4ef2e5
push esi
call ecx
mov eax, dword [esi]
add esp, 4
or dword [esi + 8], 2
push dword [eax + 0x28]
push dword [esi + 0xc]
call fcn.00401320
add esp, 8
test edi, edi
je 0x4ef724
mov ecx, esi
call fcn.00478250
push esi
call fcn.0062fb07
mov esi, dword [ebp - 0x90]
lea ecx, [ebp - 0x24]
mov edi, dword [ebp + 8]
mov edx, edi
push esi
call fcn.00474c50
add esp, 8
test eax, eax
je 0x4efe31
lea eax, [edi*8]
imul eax, ebx
test eax, eax
js 0x4ef70c
push eax
mov edx, esi
mov ecx, esi
call fcn.004be4f0
mov ecx, dword [esi + 4]
add esp, 4
mov edx, eax
mov eax, ecx
test ecx, ecx
jle 0x4ef375
mov eax, dword [esi]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x8c], edi
lea eax, [eax + ecx*4]
cmp dword [eax - 4], 0
lea eax, [eax - 4]
jne 0x4ef370
dec ecx
test ecx, ecx
jg 0x4ef362
mov dword [esi + 4], ecx
mov eax, ecx
test eax, eax
jne 0x4ef37c
mov dword [esi + 0xc], eax
test edx, edx
je 0x4efe31
mov edi, dword [ebp - 0xa0]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xd8], esi
mov ebx, dword [edi + 0xc]
cmp ebx, esi
jne 0x4ef3ac
mov esi, dword [ebp - 0x90]
mov edx, edi
push esi
mov ecx, edi
call fcn.004a1d20
jmp 0x4ef423
mov edx, dword [edi + 4]
mov eax, edx
sub eax, ecx
jne 0x4ef403
mov esi, dword [ebp - 0x90]
lea ecx, [edx - 1]
mov edi, dword [edi]
mov esi, dword [esi]
test ecx, ecx
js 0x4ef3e1
lea eax, [esi + ecx*4]
sub edi, esi
nop dword [eax + eax]
mov edx, dword [edi + eax]
mov esi, dword [eax]
cmp esi, edx
jne 0x4ef3f1
sub eax, 4
sub ecx, 1
jns 0x4ef3d0
mov edi, dword [ebp - 0xa0]
cmp dword [edi + 8], 1
jl 0x4ef433
mov eax, edi
jmp 0x4ef43f
mov esi, dword [ebp - 0xd8]
sbb eax, eax
mov edi, dword [ebp - 0xa0]
and eax, 2
dec eax
test eax, eax
jle 0x4ef411
push dword [ebp - 0x90]
mov edx, edi
jmp 0x4ef41c
jns 0x4ef3e7
mov edx, dword [ebp - 0x90]
mov ebx, esi
push edi
mov ecx, edi
call fcn.004a1de0
add esp, 4
mov dword [edi + 0xc], ebx
test eax, eax
je 0x4efe31
jmp 0x4ef459
mov edx, 1
mov ecx, edi
call fcn.004749e0
test eax, eax
je 0x4ef452
mov eax, dword [edi]
mov dword [eax], 0
mov dword [edi + 4], 0
mov dword [edi + 0xc], 0
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0x8c]
inc ebx
mov dword [ebp - 0xcc], ebx
cmp ebx, dword [ebp - 0xd0]
jle 0x4ef230
mov ebx, dword [ebp - 0xbc]
sub ebx, 1
js 0x4efe31
mov eax, ebx
mov esi, ebx
cdq
and edx, 0x1f
lea ecx, [edx + eax]
sar ecx, 5
and esi, 0x8000001f
jns 0x4ef4a2
dec esi
or esi, 0xffffffe0
inc esi
cmp ecx, dword [edi + 4]
jge 0x4efe31
test esi, esi
jne 0x4ef4b4
mov dword [edi + 4], ecx
jmp 0x4ef4cd
lea eax, [ecx + 1]
mov dword [edi + 4], eax
mov eax, dword [edi]
lea edx, [eax + ecx*4]
or eax, 0xffffffff
mov ecx, esi
shl eax, cl
not eax
and dword [edx], eax
mov ecx, dword [edi + 4]
mov esi, ecx
mov eax, ecx
test ecx, ecx
jle 0x4ef4f5
mov eax, dword [edi]
lea eax, [eax + ecx*4]
nop word [eax + eax]
cmp dword [eax - 4], 0
lea eax, [eax - 4]
jne 0x4ef4ee
dec ecx
test ecx, ecx
jg 0x4ef4e0
mov dword [edi + 4], ecx
mov eax, ecx
mov esi, ecx
test eax, eax
jne 0x4ef4fc
mov dword [edi + 0xc], eax
test byte [edi + 0x10], 4
je 0x4ef505
mov esi, dword [edi + 8]
mov ebx, dword [ebp - 0xa4]
cmp ebx, edi
je 0x4ef54f
cmp esi, dword [ebx + 8]
jg 0x4ef518
mov eax, ebx
jmp 0x4ef521
mov edx, esi
mov ecx, ebx
call fcn.004749e0
test eax, eax
je 0x4efe31
cmp dword [edi + 4], 0
jle 0x4ef543
lea eax, [esi*4]
push eax
push dword [edi]
push dword [ebx]
call fcn.0062bbe0
add esp, 0xc
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
test ebx, ebx
je 0x4efe31
push dword [ebp - 0x94]
push ebx
push ebx
call fcn.004a1bd0
add esp, 0xc
test eax, eax
je 0x4efe31
mov esi, dword [ebp - 0x90]
mov ecx, esi
mov edx, dword [ebp - 0xa8]
call fcn.004be2d0
test eax, eax
je 0x4efe31
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4efdff
mov eax, dword [esi]
cmp dword [eax + ecx*4 - 4], 0
je 0x4efde9
push dword [ebp - 0x88]
mov edx, dword [ebp - 0xc0]
xor ecx, ecx
push esi
push ebx
call fcn.004d2b10
add esp, 0xc
test eax, eax
je 0x4efe31
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x4ef5d9
mov ecx, eax
call fcn.004754e0
mov eax, dword [ebp - 0xc0]
push 0x695e00
push eax
push esi
call fcn.004a1c80
add esp, 0xc
test eax, eax
je 0x4efe31
mov ebx, dword [ebx + 0xc]
mov esi, dword [esi + 0xc]
cmp ebx, esi
je 0x4ef615
push dword [ebp - 0x90]
mov esi, dword [ebp - 0x98]
mov ecx, esi
mov edx, dword [ebp - 0xa4]
call fcn.004a1d20
jmp 0x4ef65a
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa4]
call fcn.00474ef0
test eax, eax
jle 0x4ef638
push dword [ebp - 0x90]
mov edx, dword [ebp - 0xa4]
jmp 0x4ef64d
jns 0x4ef670
push dword [ebp - 0xa4]
mov edx, dword [ebp - 0x90]
xor ebx, ebx
test esi, esi
sete bl
mov esi, dword [ebp - 0x98]
mov ecx, esi
call fcn.004a1de0
add esp, 4
mov dword [esi + 0xc], ebx
test eax, eax
je 0x4efe31
mov ebx, dword [ebp - 0x98]
jmp 0x4ef6a6
mov ebx, dword [ebp - 0x98]
cmp dword [ebx + 8], 1
jl 0x4ef680
mov eax, ebx
jmp 0x4ef68c
mov edx, 1
mov ecx, ebx
call fcn.004749e0
test eax, eax
je 0x4ef69f
mov eax, dword [ebx]
mov dword [eax], 0
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov edx, dword [ebp - 0x94]
mov ecx, ebx
call fcn.00474f30
test eax, eax
js 0x4ef6df
mov esi, dword [ebp - 0xac]
mov edx, 0x40
push esi
push 1
push dword [ebp - 0x88]
mov ecx, ebx
call fcn.00512da0
add esp, 0xc
test eax, eax
jg 0x4ef739
jne 0x4efe31
mov edx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0x8c]
inc edx
mov dword [ebp - 0xc4], edx
cmp edx, 0x1000
jl 0x4ef1a7
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0xac]
jmp 0x4eede0
push 0x56
push 0x6e4258
push 0x77
mov edx, 0x91
mov ecx, 3
jmp 0x4efe29
mov ecx, esi
call fcn.00478250
push esi
call fcn.0062fb07
add esp, 4
jmp 0x4efe31
test esi, esi
je 0x4ef777
mov eax, dword [esi]
sub eax, 1
je 0x4ef764
sub eax, 1
jne 0x4efe31
mov eax, dword [esi + 8]
push esi
push 1
push 2
call eax
add esp, 0xc
test eax, eax
je 0x4efe31
jmp 0x4ef777
mov eax, dword [esi + 8]
test eax, eax
je 0x4ef777
push dword [esi + 4]
push 1
push 2
call eax
add esp, 0xc
push 0x695e00
push ebx
mov ebx, dword [ebp - 0x94]
push ebx
call fcn.004a1c80
add esp, 0xc
test eax, eax
je 0x4efe31
mov edi, dword [ebp - 0x88]
xor edx, edx
push edi
push dword [ebp - 0xa8]
push ebx
mov ebx, dword [ebp - 0x90]
mov ecx, ebx
call fcn.004d2a70
add esp, 0xc
test eax, eax
je 0x4efe31
mov ecx, dword [ebp - 0x94]
mov edx, 2
call fcn.00474c10
test eax, eax
je 0x4efe31
mov ecx, dword [ebp - 0xb8]
push edi
mov edi, dword [ebp - 0x98]
mov edx, edi
call fcn.00494bf0
add esp, 4
test eax, eax
je 0x4efe31
push dword [ebp - 0xb8]
push dword [ebp - 0x88]
push edi
push ebx
push dword [ebp - 0x94]
push dword [ebp - 0xb0]
call fcn.004dc700
add esp, 0x18
test eax, eax
je 0x4efe31
nop dword [eax]
mov ecx, dword [ebp - 0xb0]
cmp dword [ecx + 4], 1
jne 0x4ef881
mov eax, dword [ecx]
cmp dword [eax], 1
jne 0x4ef881
cmp dword [ecx + 0xc], 0
jne 0x4ef881
mov eax, dword [ebp - 0x94]
push 0x695e00
push eax
push eax
call fcn.004a1bd0
add esp, 0xc
test eax, eax
je 0x4efe31
push dword [ebp - 0xb8]
push dword [ebp - 0x88]
push edi
push ebx
push dword [ebp - 0x94]
push dword [ebp - 0xb0]
call fcn.004dc700
add esp, 0x18
test eax, eax
jne 0x4ef820
jmp 0x4efe31
test esi, esi
je 0x4ef8bf
mov eax, dword [esi]
sub eax, 1
je 0x4ef8ac
sub eax, 1
jne 0x4efe31
mov eax, dword [esi + 8]
push esi
push 1
push 3
call eax
add esp, 0xc
test eax, eax
je 0x4efe31
jmp 0x4ef8bf
mov eax, dword [esi + 8]
test eax, eax
je 0x4ef8bf
push dword [esi + 4]
push 1
push 3
call eax
add esp, 0xc
mov ebx, dword [ebp - 0xb4]
mov dword [ebp - 0xc8], 1
nop
mov esi, dword [ebx + 8]
test esi, esi
je 0x4ef918
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4ef909
mov edi, dword [esi]
test al, 8
je 0x4ef900
test edi, edi
je 0x4ef909
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4ef909
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4ef918
push esi
call fcn.0062fb07
add esp, 4
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x4ef960
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4ef951
mov edi, dword [esi]
test al, 8
je 0x4ef948
test edi, edi
je 0x4ef951
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4ef951
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4ef960
push esi
call fcn.0062fb07
add esp, 4
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4ef9a8
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4ef999
mov edi, dword [esi]
test al, 8
je 0x4ef990
test edi, edi
je 0x4ef999
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4ef999
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4ef9a8
push esi
call fcn.0062fb07
add esp, 4
mov ebx, dword [ebp - 0x98]
mov dword [0x70e32c], 0
push 0x14
test byte [ebx + 0x10], 8
je 0x4efa19
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4ef9f2
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 9
jmp 0x4efa10
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
test esi, esi
jne 0x4efa4d
jmp 0x4efafc
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efae0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 1
test byte [ebx + 0x10], 4
je 0x4efa58
mov edi, dword [ebx + 8]
jmp 0x4efa5b
mov edi, dword [ebx + 4]
cmp esi, ebx
je 0x4efafe
cmp edi, dword [esi + 8]
jle 0x4efab8
mov edx, edi
mov ecx, esi
call fcn.004749e0
test eax, eax
jne 0x4efab8
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4efaa7
mov edi, dword [esi]
test al, 8
je 0x4efa9e
test edi, edi
je 0x4efaa7
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4efaa7
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4efafc
push esi
call fcn.0062fb07
add esp, 4
jmp 0x4efafc
cmp dword [ebx + 4], 0
jle 0x4efad2
lea eax, [edi*4]
push eax
push dword [ebx]
push dword [esi]
call fcn.0062bbe0
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
jmp 0x4efafe
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xa8]
mov dword [eax + 8], esi
test ebx, ebx
je 0x4efc63
test byte [ebx + 0x10], 8
mov dword [0x70e32c], 0
push 0x14
je 0x4efb80
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efb59
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 9
jmp 0x4efb77
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
test esi, esi
jne 0x4efbb4
jmp 0x4efc63
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efc47
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 1
test byte [ebx + 0x10], 4
je 0x4efbbf
mov edi, dword [ebx + 8]
jmp 0x4efbc2
mov edi, dword [ebx + 4]
cmp esi, ebx
je 0x4efc65
cmp edi, dword [esi + 8]
jle 0x4efc1f
mov edx, edi
mov ecx, esi
call fcn.004749e0
test eax, eax
jne 0x4efc1f
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4efc0e
mov edi, dword [esi]
test al, 8
je 0x4efc05
test edi, edi
je 0x4efc0e
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4efc0e
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4efc63
push esi
call fcn.0062fb07
add esp, 4
jmp 0x4efc63
cmp dword [ebx + 4], 0
jle 0x4efc39
lea eax, [edi*4]
push eax
push dword [ebx]
push dword [esi]
call fcn.0062bbe0
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
jmp 0x4efc65
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
mov ebx, dword [ebp - 0xb4]
mov dword [0x70e32c], 0
push 0x14
mov dword [ebx + 0xc], esi
mov ebx, dword [ebp - 0xb0]
test byte [ebx + 0x10], 8
je 0x4efcdf
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efcb8
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 9
jmp 0x4efcd6
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
test esi, esi
jne 0x4efd13
jmp 0x4efdc2
call fcn.0063320d
mov esi, eax
add esp, 4
test esi, esi
je 0x4efda6
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 1
test byte [ebx + 0x10], 4
je 0x4efd1e
mov edi, dword [ebx + 8]
jmp 0x4efd21
mov edi, dword [ebx + 4]
cmp esi, ebx
je 0x4efdc4
cmp edi, dword [esi + 8]
jle 0x4efd7e
mov edx, edi
mov ecx, esi
call fcn.004749e0
test eax, eax
jne 0x4efd7e
mov eax, dword [esi + 0x10]
test al, 2
jne 0x4efd6d
mov edi, dword [esi]
test al, 8
je 0x4efd64
test edi, edi
je 0x4efd6d
mov eax, dword [esi + 8]
shl eax, 2
push eax
push edi
call fcn.00401320
push edi
call fcn.0062fb07
add esp, 0xc
jmp 0x4efd6d
push edi
call fcn.0062fb07
add esp, 4
test byte [esi + 0x10], 1
je 0x4efdc2
push esi
call fcn.0062fb07
add esp, 4
jmp 0x4efdc2
cmp dword [ebx + 4], 0
jle 0x4efd98
lea eax, [edi*4]
push eax
push dword [ebx]
push dword [esi]
call fcn.0062bbe0
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
jmp 0x4efdc4
mov edx, 0x71
push 0xf7
push 0x6d72e0
push 0x41
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
xor esi, esi
mov eax, dword [ebp - 0xb4]
cmp dword [eax + 8], 0
mov dword [eax + 0x10], esi
je 0x4efddd
cmp dword [eax + 0xc], 0
je 0x4efddd
test esi, esi
jne 0x4efe31
mov dword [ebp - 0xc8], 0
jmp 0x4efe31
push 0xe1
mov edx, 0x6b
push 0x6e5d78
push 0x6b
lea ecx, [edx - 0x68]
jmp 0x4efe29
push 0xd7
mov edx, 0x6b
push 0x6e5d78
push 0x67
lea ecx, [edx - 0x68]
jmp 0x4efe29
push 0x3ae
mov edx, 0x64
push 0x6d8768
push 0x65
lea ecx, [edx - 0x40]
call fcn.004818c0
add esp, 0xc
mov ebx, dword [ebp - 0x88]
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4efe44
dec eax
mov dword [ebx + 0x24], eax
jmp 0x4efe9f
dec dword [ebx + 0x18]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
mov esi, dword [eax + ecx*4]
cmp esi, edx
jae 0x4efe8d
mov eax, dword [ebx + 0xc]
sub edx, esi
lea ecx, [eax - 1]
sub eax, edx
and ecx, 0xf
mov dword [ebx + 0xc], eax
test edx, edx
je 0x4efe8d
nop dword [eax + eax]
dec edx
test ecx, ecx
jne 0x4efe88
mov eax, dword [ebx + 4]
mov ecx, 0xf
mov eax, dword [eax + 0x140]
mov dword [ebx + 4], eax
jmp 0x4efe89
dec ecx
test edx, edx
jne 0x4efe70
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x28], 0
jmp 0x4efe9f
mov ebx, eax
jmp 0x4efe9f
xor ebx, ebx
mov ecx, ebx
call fcn.004a0770
mov ecx, dword [ebp - 0xb8]
call fcn.00494aa0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc8]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
push 0xb7
mov edx, 0x6d75f8
mov ecx, 0x6d764c
call fcn.0048a7e0
int3