Function at 0x5468d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5d163e
push eax
mov dword fs:[0], esp
mov ecx, dword [0x6a7468]
sub esp, 0x10
push ebx
push esi
push edi
test ecx, ecx
je 0x546902
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
call fcn.00582ae0
or ebx, 0xffffffff
test byte [0x692a10], 1
jne 0x546938
or dword [0x692a10], 1
mov dword [esp + 0x24], 0
call fcn.0053fe00
push 0x5ef5b0
call fcn.0048ef30
add esp, 4
mov dword [esp + 0x24], ebx
mov ecx, dword [0x6a7478]
test ecx, ecx
je 0x546949
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
call fcn.00406f40
mov esi, eax
call fcn.005586e0
call fcn.005819a0
mov eax, dword [ebp + 8]
push eax
call fcn.00581a00
cmp byte [ebp + 0x10], 0
je 0x546978
mov edi, 0x6803c8
mov eax, 0x6a9d70
call fcn.00419550
call fcn.005818e0
call fcn.00581940
call fcn.00581880
mov edi, 0x6a7698
lea esp, [esp]
mov ecx, dword [edi]
test ecx, ecx
je 0x5469d2
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov esi, dword [edi]
test esi, esi
je 0x5469cc
mov eax, dword [edi + 4]
cmp eax, dword [esi + 0x17c]
je 0x5469cc
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push eax
mov dword [ecx + 4], edx
call fcn.0048f06d
add esp, 4
add dword [esi + 0x180], ebx
mov dword [edi], 0
add edi, 8
cmp edi, 0x6a76a8
jl 0x546990
mov ecx, dword [0x6a7690]
test ecx, ecx
je 0x5469ee
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [0x6a7494]
mov edi, dword [eax]
cmp edi, eax
je 0x546ade
lea ecx, [ecx]
mov eax, dword [edi + 0x44]
mov esi, dword [eax]
cmp esi, eax
je 0x546a67
lea esp, [esp]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x546a1e
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
cmp byte [esi + 0x19], 0
jne 0x546a62
mov eax, dword [esi + 8]
cmp byte [eax + 0x19], 0
jne 0x546a43
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
jne 0x546a62
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
je 0x546a37
jmp 0x546a62
mov eax, dword [esi + 4]
cmp byte [eax + 0x19], 0
jne 0x546a60
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x546a60
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x19], 0
je 0x546a50
mov esi, eax
cmp esi, dword [edi + 0x44]
jne 0x546a10
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [edi + 0x40]
call fcn.00418720
mov eax, dword [edi + 0x44]
mov dword [eax + 4], eax
mov eax, dword [edi + 0x44]
mov dword [eax], eax
mov eax, dword [edi + 0x44]
mov dword [eax + 8], eax
mov dword [edi + 0x48], 0
cmp byte [edi + 0x51], 0
jne 0x546ad2
mov ecx, dword [edi + 8]
cmp byte [ecx + 0x51], 0
jne 0x546ab3
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
jne 0x546aaf
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x546aa5
mov edi, ecx
jmp 0x546ad2
mov eax, dword [edi + 4]
cmp byte [eax + 0x51], 0
jne 0x546ad0
lea esp, [esp]
cmp edi, dword [eax + 8]
jne 0x546ad0
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x51], 0
je 0x546ac0
mov edi, eax
cmp edi, dword [0x6a7494]
jne 0x546a00
mov bl, byte [ebp + 0x10]
test bl, bl
je 0x546bb3
cmp dword [0x6a9dc0], 0
je 0x546bb3
mov esi, dword [0x6807b0]
mov ecx, dword [0x68079c]
mov eax, ecx
cmp esi, 0x10
jae 0x546b0e
mov eax, 0x68079c
mov edx, dword [0x6807ac]
add edx, eax
cmp esi, 0x10
jae 0x546b20
mov ecx, 0x68079c
xor eax, eax
cmp ecx, edx
je 0x546b43
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x546b26
xor edx, edx
div dword [0x6a9db4]
mov eax, dword [0x6a9db0]
push 0x68079c
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
test ecx, ecx
je 0x546bb3
mov edx, dword [ecx]
push edx
push ecx
mov dword [eax], edx
call fcn.0041dd50
sub dword [0x6a9dc0], eax
mov eax, dword [0x6a9dc8]
cmp esi, eax
jne 0x546bb3
cmp dword [0x6a9dc0], 0
je 0x546b9f
cmp dword [eax], 0
jne 0x546bb3
lea ecx, [ecx]
add eax, 4
mov dword [0x6a9dc8], eax
cmp dword [eax], 0
je 0x546b90
jmp 0x546bb3
mov ecx, dword [0x6a9db4]
mov edx, dword [0x6a9db0]
lea eax, [edx + ecx*4]
mov dword [0x6a9dc8], eax
mov edx, dword [0x6a74c4]
mov esi, dword [edx]
cmp esi, edx
je 0x546c1b
nop
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x546bd4
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov edx, dword [0x6a74c4]
cmp byte [esi + 0x19], 0
jne 0x546c17
mov eax, dword [esi + 8]
cmp byte [eax + 0x19], 0
jne 0x546bfc
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
jne 0x546c17
lea ecx, [ecx]
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
je 0x546bf0
jmp 0x546c17
mov eax, dword [esi + 4]
cmp byte [eax + 0x19], 0
jne 0x546c15
cmp esi, dword [eax + 8]
jne 0x546c15
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x19], 0
je 0x546c05
mov esi, eax
cmp esi, edx
jne 0x546bc0
mov ecx, dword [edx + 4]
push ecx
mov ecx, 0x6a74c0
call fcn.00418720
mov eax, dword [0x6a74c4]
mov dword [eax + 4], eax
mov eax, dword [0x6a74c4]
mov dword [eax], eax
mov eax, dword [0x6a74c4]
mov dword [eax + 8], eax
mov dword [0x6a74c8], 0
test bl, bl
je 0x546d23
cmp dword [0x6a9dc0], 0
je 0x546d23
mov esi, dword [0x6807cc]
mov ecx, dword [0x6807b8]
mov eax, ecx
cmp esi, 0x10
jae 0x546c77
mov eax, 0x6807b8
mov edx, dword [0x6807c8]
add edx, eax
cmp esi, 0x10
jae 0x546c89
mov ecx, 0x6807b8
xor eax, eax
cmp ecx, edx
je 0x546cad
nop
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x546c90
xor edx, edx
div dword [0x6a9db4]
mov eax, dword [0x6a9db0]
push 0x6807b8
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
test ecx, ecx
je 0x546d23
mov edx, dword [ecx]
push edx
push ecx
mov dword [eax], edx
call fcn.0041dd50
sub dword [0x6a9dc0], eax
mov eax, dword [0x6a9dc8]
cmp esi, eax
jne 0x546d23
cmp dword [0x6a9dc0], 0
je 0x546d0f
cmp dword [eax], 0
jne 0x546d23
jmp 0x546d00
add eax, 4
mov dword [0x6a9dc8], eax
cmp dword [eax], 0
je 0x546d00
jmp 0x546d23
mov ecx, dword [0x6a9db4]
mov edx, dword [0x6a9db0]
lea eax, [edx + ecx*4]
mov dword [0x6a9dc8], eax
test byte [0x692b28], 1
jne 0x546d33
or dword [0x692b28], 1
mov eax, dword [0x6a49e8]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x6a49e4]
cdq
sub eax, edx
mov edi, eax
sar esi, 1
sar edi, 1
call fcn.00553cd0
push 0x1c4
call fcn.0048f2c5
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 1
test eax, eax
je 0x546d8a
mov ecx, dword [ebp + 0xc]
push 0
push esi
push edi
push 0
push ecx
push 2
mov ecx, 0x64
push eax
mov edx, ecx
call fcn.004fb540
mov esi, eax
jmp 0x546d8c
xor esi, esi
mov dword [esp + 0x24], 0xffffffff
mov edi, dword [0x692f10]
mov ebx, dword [edi + 0x3c]
mov eax, dword [ebx + 4]
lea edx, [esp + 0x10]
push edx
push eax
push ebx
mov dword [esp + 0x1c], esi
call fcn.00406ce0
mov ecx, dword [edi + 0x40]
mov edx, 0x3ffffffe
sub edx, ecx
cmp edx, 1
jae 0x546dc9
push str.list_T__too_long
call fcn.0047cca5
inc ecx
mov dword [edi + 0x40], ecx
mov dword [ebx + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + 4]
mov dword [esi + 0x190], eax
xor eax, eax
cmp byte [esi + 0x199], al
setne al
lea edi, [eax - 1]
and edi, esi
call fcn.00416190
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], 0
mov edi, dword [ebp + 0xc]
je 0x546e12
mov eax, edi
jmp 0x546e2a
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, dword [ebp + 0xc]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ecx, dword [0x6a7440]
xor ebx, ebx
cmp ecx, ebx
je 0x546e75
push ecx
call fcn.0057f4e0
mov eax, dword [0x6a7440]
cmp eax, ebx
je 0x546e6f
lea esi, [eax + 0x17c]
mov eax, dword [0x6a7444]
cmp eax, dword [esi]
je 0x546e6f
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push eax
mov dword [ecx + 4], edx
call fcn.0048f06d
add esp, 4
dec dword [esi + 4]
mov dword [0x6a7440], ebx
cmp byte [ebp + 0x10], bl
je 0x546f52
cmp dword [0x6a9d60], ebx
je 0x546f52
mov esi, dword [0x680580]
mov ecx, dword [0x68056c]
mov eax, ecx
cmp esi, 0x10
jae 0x546ea2
mov eax, 0x68056c
mov edx, dword [0x68057c]
add edx, eax
cmp esi, 0x10
jae 0x546eb4
mov ecx, 0x68056c
xor eax, eax
cmp ecx, edx
je 0x546ee0
lea ebx, [ebx]
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x546ec0
mov edi, dword [ebp + 0xc]
xor edx, edx
div dword [0x6a9d54]
mov eax, dword [0x6a9d50]
push 0x68056c
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
cmp ecx, ebx
je 0x546f52
mov edx, dword [ecx]
mov dword [eax], edx
push edx
mov eax, ecx
call fcn.0041a9b0
sub dword [0x6a9d60], eax
mov eax, dword [0x6a9d68]
cmp esi, eax
jne 0x546f52
cmp dword [0x6a9d60], ebx
je 0x546f3e
cmp dword [eax], ebx
jne 0x546f52
lea esp, [esp]
add eax, 4
mov dword [0x6a9d68], eax
cmp dword [eax], ebx
je 0x546f30
jmp 0x546f52
mov ecx, dword [0x6a9d54]
mov edx, dword [0x6a9d50]
lea eax, [edx + ecx*4]
mov dword [0x6a9d68], eax
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], ebx
je 0x546f6a
mov eax, edi
jmp 0x546f81
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
call fcn.0057e370
add esp, 4
cmp byte [ebp + 0x10], bl
je 0x547062
cmp dword [0x6a9dc0], ebx
je 0x547062
mov esi, dword [0x680708]
mov ecx, dword [0x6806f4]
mov eax, ecx
cmp esi, 0x10
jae 0x546fb7
mov eax, 0x6806f4
mov edx, dword [0x680704]
add edx, eax
cmp esi, 0x10
jae 0x546fc9
mov ecx, 0x6806f4
xor eax, eax
cmp ecx, edx
je 0x546ff0
nop
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x546fd0
mov edi, dword [ebp + 0xc]
xor edx, edx
div dword [0x6a9db4]
mov eax, dword [0x6a9db0]
push 0x6806f4
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
cmp ecx, ebx
je 0x547062
mov edx, dword [ecx]
push edx
push ecx
mov dword [eax], edx
call fcn.0041dd50
sub dword [0x6a9dc0], eax
mov eax, dword [0x6a9dc8]
cmp esi, eax
jne 0x547062
cmp dword [0x6a9dc0], ebx
je 0x54704e
cmp dword [eax], ebx
jne 0x547062
jmp 0x547040
add eax, 4
mov dword [0x6a9dc8], eax
cmp dword [eax], ebx
je 0x547040
jmp 0x547062
mov ecx, dword [0x6a9db4]
mov edx, dword [0x6a9db0]
lea eax, [edx + ecx*4]
mov dword [0x6a9dc8], eax
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], ebx
je 0x54707a
mov eax, edi
jmp 0x547091
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
call fcn.0057eeb0
add esp, 4
cmp byte [ebp + 0x10], bl
je 0x547167
cmp dword [0x6a9dc0], ebx
je 0x547167
mov esi, dword [0x680740]
mov ecx, dword [0x68072c]
mov eax, ecx
cmp esi, 0x10
jae 0x5470c7
mov eax, 0x68072c
mov edx, dword [0x68073c]
add edx, eax
cmp esi, 0x10
jae 0x5470d9
mov ecx, 0x68072c
xor eax, eax
cmp ecx, edx
je 0x5470fd
nop
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x5470e0
xor edx, edx
div dword [0x6a9db4]
mov eax, dword [0x6a9db0]
push 0x68072c
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
cmp ecx, ebx
je 0x547167
mov edx, dword [ecx]
push edx
push ecx
mov dword [eax], edx
call fcn.0041dd50
sub dword [0x6a9dc0], eax
mov eax, dword [0x6a9dc8]
cmp esi, eax
jne 0x547167
cmp dword [0x6a9dc0], ebx
je 0x547153
cmp dword [eax], ebx
jne 0x547167
add eax, 4
mov dword [0x6a9dc8], eax
cmp dword [eax], ebx
je 0x547145
jmp 0x547167
mov ecx, dword [0x6a9db4]
mov edx, dword [0x6a9db0]
lea eax, [edx + ecx*4]
mov dword [0x6a9dc8], eax
mov eax, dword [0x6a7494]
mov esi, dword [eax]
cmp esi, eax
je 0x547201
mov dword [esi + 0x10], ebx
mov edi, dword [esi + 0x14]
mov dword [esi + 0x14], ebx
cmp edi, ebx
je 0x5471ad
lea ecx, [edi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x5471ad
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
lea eax, [edi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x5471ad
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
je 0x5471bb
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
cmp byte [esi + 0x51], bl
jne 0x5471f5
mov eax, dword [esi + 8]
cmp byte [eax + 0x51], bl
jne 0x5471dc
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
jne 0x5471f5
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
je 0x5471d1
jmp 0x5471f5
mov eax, dword [esi + 4]
cmp byte [eax + 0x51], bl
jne 0x5471f3
cmp esi, dword [eax + 8]
jne 0x5471f3
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x51], bl
je 0x5471e4
mov esi, eax
cmp esi, dword [0x6a7494]
jne 0x547176
cmp byte [ebp + 0x10], bl
je 0x5472e2
push 0x6802b0
mov ecx, 0x6a9d50
call fcn.004021d0
mov dword [eax + 0x1c], ebx
cmp dword [0x6a9dc0], ebx
je 0x5472e2
mov esi, dword [0x68075c]
mov ecx, dword [0x680748]
mov eax, ecx
cmp esi, 0x10
jae 0x547240
mov eax, 0x680748
mov edx, dword [0x680758]
add edx, eax
cmp esi, 0x10
jae 0x547252
mov ecx, 0x680748
xor eax, eax
cmp ecx, edx
je 0x547275
mov esi, eax
mov edi, eax
shl esi, 6
shr edi, 2
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x547258
xor edx, edx
div dword [0x6a9db4]
mov eax, dword [0x6a9db0]
push 0x680748
lea esi, [eax + edx*4]
mov eax, esi
call fcn.0041e360
mov ecx, dword [eax]
cmp ecx, ebx
je 0x5472e2
mov edx, dword [ecx]
push edx
push ecx
mov dword [eax], edx
call fcn.0041dd50
sub dword [0x6a9dc0], eax
mov eax, dword [0x6a9dc8]
cmp esi, eax
jne 0x5472e2
cmp dword [0x6a9dc0], ebx
je 0x5472ce
cmp dword [eax], ebx
jne 0x5472e2
lea ecx, [ecx]
add eax, 4
mov dword [0x6a9dc8], eax
cmp dword [eax], ebx
je 0x5472c0
jmp 0x5472e2
mov ecx, dword [0x6a9db4]
mov edx, dword [0x6a9db0]
lea eax, [edx + ecx*4]
mov dword [0x6a9dc8], eax
call fcn.00533c60
cmp byte [ebp + 0x10], bl
je 0x5472fb
mov edi, 0x680764
mov eax, 0x6a9db0
call fcn.0041de90
push 1
call fcn.00596f70
add esp, 4
cmp byte [ebp + 0x10], bl
je 0x547319
mov edi, 0x680780
mov eax, 0x6a9db0
call fcn.0041de90
mov esi, dword [0x6a74d4]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
cmp eax, esi
je 0x547358
lea esp, [esp]
cmp dword [eax + 0x10], ebx
je 0x547347
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
mov esi, dword [0x6a74d4]
lea eax, [esp + 0x10]
call fcn.00418ad0
mov eax, dword [esp + 0x10]
cmp eax, esi
jne 0x547330
mov ecx, dword [esi + 4]
push ecx
mov ecx, 0x6a74d0
call fcn.00418720
mov eax, dword [0x6a74d4]
mov dword [eax + 4], eax
mov eax, dword [0x6a74d4]
mov dword [eax], eax
mov eax, dword [0x6a74d4]
mov dword [eax + 8], eax
mov dword [0x6a74d8], ebx
cmp byte [ebp + 0x10], bl
je 0x547397
mov edi, 0x6807d4
mov eax, 0x6a9db0
call fcn.0041de90
mov ecx, dword [0x6a7610]
cmp ecx, ebx
je 0x5473a8
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov ecx, dword [0x6a7608]
cmp ecx, ebx
je 0x5473b9
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
cmp byte [ebp + 0x10], bl
je 0x5473cd
mov edi, 0x68033c
mov eax, 0x6a9db0
call fcn.0041de90
cmp dword [0x6a7448], ebx
je 0x547469
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], ebx
je 0x5473f2
mov eax, dword [ebp + 0xc]
jmp 0x54740a
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, dword [ebp + 0xc]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [esp + 0x10], eax
cmp eax, 0x14
mov dword [esp + 0x14], 0x14
lea eax, [esp + 0x10]
jl 0x547423
lea eax, [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [0x6a7448]
push ecx
call fcn.0057d0a0
mov eax, dword [0x6a7448]
cmp eax, ebx
je 0x547463
lea esi, [eax + 0x17c]
mov eax, dword [0x6a744c]
cmp eax, dword [esi]
je 0x547463
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [edx], ecx
mov edx, dword [eax]
mov ecx, dword [eax + 4]
push eax
mov dword [edx + 4], ecx
call fcn.0048f06d
add esp, 4
dec dword [esi + 4]
mov dword [0x6a7448], ebx
cmp dword [0x6a7618], ebx
je 0x5474eb
mov eax, dword [ebp + 0xc]
cmp eax, 1
jne 0x54747d
mov esi, eax
jmp 0x547495
and eax, 0xffff
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], ebx
je 0x5474ad
mov eax, esi
jmp 0x5474c4
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov edi, eax
mov eax, dword [0x6a7618]
call fcn.00571180
xor edi, edi
call fcn.00416230
cmp byte [ebp + 0x10], bl
je 0x5474eb
mov edi, 0x67fec0
mov eax, 0x6a9d50
call fcn.0041aa50
cmp dword [0x6a7620], ebx
je 0x547571
cmp dword [ebp + 0xc], 1
jne 0x547500
mov esi, 1
jmp 0x54751b
mov eax, dword [ebp + 0xc]
and eax, 0xffff
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
push 0x680304
mov ecx, 0x6a9d50
call fcn.004021d0
cmp dword [eax + 0x1c], ebx
je 0x547533
mov eax, esi
jmp 0x54754a
mov eax, 0x20
sub eax, dword [0x694044]
imul eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov edi, eax
mov eax, dword [0x6a7620]
call fcn.00571d40
xor edi, edi
call fcn.004162d0
cmp byte [ebp + 0x10], bl
je 0x547571
mov edi, 0x67ff84
mov eax, 0x6a9d50
call fcn.0041aa50
mov edx, dword [0x692f10]
push edx
call fcn.00506c00
test byte [0x692ae8], 1
jne 0x54759f
or dword [0x692ae8], 1
call fcn.00541110
push 0x5f09b0
call fcn.0048ef30
add esp, 4
mov esi, 0x692aec
call fcn.00541700
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc