Function at 0x46e2e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5c3911
push eax
mov dword fs:[0], esp
push ebx
mov ebx, ecx
mov ecx, dword [0x68d200]
push esi
push edi
test ecx, ecx
je 0x46e30e
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
mov ecx, ebx
call fcn.00469670
or esi, 0xffffffff
test byte [0x68987c], 1
lea edi, [esi + 2]
jne 0x46e34b
or dword [0x68987c], edi
mov ecx, 0x689868
mov dword [ebp - 4], 0
call fcn.0047f100
push 0x5f2070
call fcn.0052e444
add esp, 4
mov dword [ebp - 4], esi
mov ecx, 0x689868
call fcn.0047f040
test byte [0x689864], 1
jne 0x46e381
or dword [0x689864], edi
mov ecx, 0x689834
mov dword [ebp - 4], edi
call fcn.0044d710
push 0x5f2030
call fcn.0052e444
add esp, 4
mov dword [ebp - 4], esi
mov ecx, 0x689834
call fcn.0044ed60
mov ecx, ebx
call fcn.0046bcc0
mov ecx, ebx
call fcn.0046bb30
cmp byte [ebp + 0x10], 0
je 0x46e3e6
cmp dword [0x691148], 0
je 0x46e3e6
push 0x672edc
call fcn.0040c6c0
xor edx, edx
div dword [0x69113c]
mov eax, dword [0x691138]
add esp, 4
push 0x672edc
mov ecx, 0x691138
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
cmp dword [eax], 0
je 0x46e3e6
push esi
push eax
mov ecx, 0x691138
call fcn.00468550
mov ecx, ebx
call fcn.0046bd80
mov ecx, ebx
call fcn.0046bd20
mov ecx, ebx
call fcn.0046bde0
mov edi, 0x68d430
mov ecx, dword [edi]
test ecx, ecx
je 0x46e442
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov esi, dword [edi]
test esi, esi
je 0x46e43c
mov eax, dword [edi + 4]
cmp eax, dword [esi + 0x17c]
je 0x46e43c
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.0052d217
add esp, 4
dec dword [esi + 0x180]
mov dword [edi], 0
add edi, 8
cmp edi, 0x68d440
jl 0x46e400
mov ecx, dword [0x68d428]
test ecx, ecx
je 0x46e45e
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [0x68d22c]
mov edi, dword [eax]
cmp edi, eax
je 0x46e54e
lea ecx, [ecx]
mov eax, dword [edi + 0x44]
mov esi, dword [eax]
cmp esi, eax
je 0x46e4d7
lea esp, [esp]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x46e48e
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
cmp byte [esi + 0x19], 0
jne 0x46e4d2
mov eax, dword [esi + 8]
cmp byte [eax + 0x19], 0
jne 0x46e4b3
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
jne 0x46e4d2
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
je 0x46e4a7
jmp 0x46e4d2
mov eax, dword [esi + 4]
cmp byte [eax + 0x19], 0
jne 0x46e4d0
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x46e4d0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x19], 0
je 0x46e4c0
mov esi, eax
cmp esi, dword [edi + 0x44]
jne 0x46e480
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [edi + 0x40]
call fcn.0048b100
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 0x46e542
mov ecx, dword [edi + 8]
cmp byte [ecx + 0x51], 0
jne 0x46e523
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
jne 0x46e51f
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x46e515
mov edi, ecx
jmp 0x46e542
mov eax, dword [edi + 4]
cmp byte [eax + 0x51], 0
jne 0x46e540
lea esp, [esp]
cmp edi, dword [eax + 8]
jne 0x46e540
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x51], 0
je 0x46e530
mov edi, eax
cmp edi, dword [0x68d22c]
jne 0x46e470
cmp byte [ebp + 0x10], 0
je 0x46e628
cmp dword [0x691188], 0
je 0x46e628
mov esi, dword [0x6732c4]
mov ecx, dword [0x6732b0]
mov eax, ecx
cmp esi, 0x10
jae 0x46e57d
mov eax, 0x6732b0
mov edx, dword [0x6732c0]
add edx, eax
cmp esi, 0x10
jae 0x46e58f
mov ecx, 0x6732b0
xor eax, eax
cmp ecx, edx
je 0x46e5b2
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 0x46e595
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x6732b0
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46e628
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46e628
cmp dword [0x691188], 0
je 0x46e614
cmp dword [eax], 0
jne 0x46e628
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46e605
jmp 0x46e628
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
mov edx, dword [0x68d25c]
mov esi, dword [edx]
cmp esi, edx
je 0x46e68c
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x46e648
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov edx, dword [0x68d25c]
cmp byte [esi + 0x19], 0
jne 0x46e688
mov eax, dword [esi + 8]
cmp byte [eax + 0x19], 0
jne 0x46e66d
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
jne 0x46e688
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x19], 0
je 0x46e661
jmp 0x46e688
mov eax, dword [esi + 4]
cmp byte [eax + 0x19], 0
jne 0x46e686
cmp esi, dword [eax + 8]
jne 0x46e686
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x19], 0
je 0x46e676
mov esi, eax
cmp esi, edx
jne 0x46e634
mov ecx, dword [edx + 4]
push ecx
mov ecx, 0x68d258
call fcn.0048b100
cmp byte [ebp + 0x10], 0
mov eax, dword [0x68d25c]
mov dword [eax + 4], eax
mov eax, dword [0x68d25c]
mov dword [eax], eax
mov eax, dword [0x68d25c]
mov dword [eax + 8], eax
mov dword [0x68d260], 0
je 0x46e795
cmp dword [0x691188], 0
je 0x46e795
mov esi, dword [0x6732e0]
mov ecx, dword [0x6732cc]
mov eax, ecx
cmp esi, 0x10
jae 0x46e6ea
mov eax, 0x6732cc
mov edx, dword [0x6732dc]
add edx, eax
cmp esi, 0x10
jae 0x46e6fc
mov ecx, 0x6732cc
xor eax, eax
cmp ecx, edx
je 0x46e71f
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 0x46e702
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x6732cc
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46e795
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46e795
cmp dword [0x691188], 0
je 0x46e781
cmp dword [eax], 0
jne 0x46e795
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46e772
jmp 0x46e795
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
test byte [0x689fe4], 1
jne 0x46e7bd
or dword [0x689fe4], 1
mov ecx, 0x689fe0
mov dword [ebp - 4], 2
call fcn.0045d150
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x68a6f8]
mov edi, dword [ebp + 8]
cdq
sub eax, edx
push 0
sar eax, 1
push eax
mov eax, dword [0x68a6f4]
cdq
sub eax, edx
sar eax, 1
push eax
push 0x64
push 0x64
push 0
push edi
mov ecx, 0x689fe0
call fcn.0045d750
cmp byte [ebp + 0xc], 0
je 0x46eb3a
push 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
je 0x46e80c
mov eax, edi
jmp 0x46e823
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
mov ecx, ebx
call fcn.00469610
mov bl, byte [ebp + 0x10]
test bl, bl
je 0x46e913
cmp dword [0x691128], 0
je 0x46e913
mov esi, dword [0x673094]
mov ecx, dword [0x673080]
mov eax, ecx
cmp esi, 0x10
jae 0x46e85b
mov eax, 0x673080
mov edx, dword [0x673090]
add edx, eax
cmp esi, 0x10
jae 0x46e86d
mov ecx, 0x673080
xor eax, eax
cmp ecx, edx
je 0x46e893
mov esi, eax
mov ebx, eax
shl esi, 6
shr ebx, 2
add esi, ebx
movsx ebx, byte [ecx]
lea esi, [esi + ebx - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x46e873
mov bl, byte [ebp + 0x10]
xor edx, edx
div dword [0x69111c]
mov eax, dword [0x691118]
push 0x673080
mov ecx, 0x691118
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46e913
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691118
mov dword [eax], edx
call fcn.0046cec0
sub dword [0x691128], eax
mov eax, dword [0x691130]
cmp esi, eax
jne 0x46e913
cmp dword [0x691128], 0
je 0x46e8ff
cmp dword [eax], 0
jne 0x46e913
jmp 0x46e8f0
add eax, 4
mov dword [0x691130], eax
cmp dword [eax], 0
je 0x46e8f0
jmp 0x46e913
mov ecx, dword [0x69111c]
mov edx, dword [0x691118]
lea eax, [edx + ecx*4]
mov dword [0x691130], eax
push 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
je 0x46e92c
mov eax, edi
jmp 0x46e943
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
call fcn.004a8920
add esp, 4
test bl, bl
je 0x46ea27
cmp dword [0x691188], 0
je 0x46ea27
mov esi, dword [0x67321c]
mov ecx, dword [0x673208]
mov eax, ecx
cmp esi, 0x10
jae 0x46e979
mov eax, 0x673208
mov edx, dword [0x673218]
add edx, eax
cmp esi, 0x10
jae 0x46e98b
mov ecx, 0x673208
xor eax, eax
cmp ecx, edx
je 0x46e9b1
mov esi, eax
mov ebx, eax
shl esi, 6
shr ebx, 2
add esi, ebx
movsx ebx, byte [ecx]
lea esi, [esi + ebx - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x46e991
mov bl, byte [ebp + 0x10]
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x673208
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46ea27
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46ea27
cmp dword [0x691188], 0
je 0x46ea13
cmp dword [eax], 0
jne 0x46ea27
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46ea04
jmp 0x46ea27
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
push 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
je 0x46ea40
mov eax, edi
jmp 0x46ea57
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
call fcn.00498d40
add esp, 4
test bl, bl
je 0x46eb3d
cmp dword [0x691188], 0
je 0x46eb3d
mov esi, dword [0x673254]
mov ecx, dword [0x673240]
mov eax, ecx
cmp esi, 0x10
jae 0x46ea8d
mov eax, 0x673240
mov edx, dword [0x673250]
add edx, eax
cmp esi, 0x10
jae 0x46ea9f
mov ecx, 0x673240
xor eax, eax
cmp ecx, edx
je 0x46eac2
mov esi, eax
mov edi, eax
shr esi, 2
shl edi, 6
add esi, edi
movsx edi, byte [ecx]
lea esi, [esi + edi - 0x61c88647]
inc ecx
xor eax, esi
cmp ecx, edx
jne 0x46eaa5
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x673240
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46eb3d
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46eb3d
cmp dword [0x691188], 0
je 0x46eb24
cmp dword [eax], 0
jne 0x46eb3d
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46eb15
jmp 0x46eb3d
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
jmp 0x46eb3d
mov bl, byte [ebp + 0x10]
mov eax, dword [0x68d22c]
mov esi, dword [eax]
cmp esi, eax
je 0x46ebe3
xor ebx, ebx
mov edi, edi
mov dword [esi + 0x10], ebx
mov edi, dword [esi + 0x14]
mov dword [esi + 0x14], ebx
cmp edi, ebx
je 0x46eb87
lea ecx, [edi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x46eb87
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 0x46eb87
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
je 0x46eb95
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
cmp byte [esi + 0x51], bl
jne 0x46ebd4
mov eax, dword [esi + 8]
cmp byte [eax + 0x51], bl
jne 0x46ebbb
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
jne 0x46ebd4
jmp 0x46ebb0
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
je 0x46ebb0
jmp 0x46ebd4
mov eax, dword [esi + 4]
cmp byte [eax + 0x51], bl
jne 0x46ebd2
cmp esi, dword [eax + 8]
jne 0x46ebd2
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x51], bl
je 0x46ebc3
mov esi, eax
cmp esi, dword [0x68d22c]
jne 0x46eb50
mov bl, byte [ebp + 0x10]
test bl, bl
je 0x46ecd3
push 0x672dc4
mov ecx, 0x691118
call fcn.004084f0
mov dword [eax + 0x1c], 0
cmp dword [0x691188], 0
je 0x46ecd3
mov esi, dword [0x673270]
mov ecx, dword [0x67325c]
mov eax, ecx
cmp esi, 0x10
jae 0x46ec26
mov eax, 0x67325c
mov edx, dword [0x67326c]
add edx, eax
cmp esi, 0x10
jae 0x46ec38
mov ecx, 0x67325c
xor eax, eax
cmp ecx, edx
je 0x46ec5d
mov edi, edi
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 0x46ec40
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x67325c
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46ecd3
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46ecd3
cmp dword [0x691188], 0
je 0x46ecbf
cmp dword [eax], 0
jne 0x46ecd3
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46ecb0
jmp 0x46ecd3
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
call fcn.004a9650
test bl, bl
je 0x46edb3
cmp dword [0x691188], 0
je 0x46edb3
mov esi, dword [0x67328c]
mov ecx, dword [0x673278]
mov eax, ecx
cmp esi, 0x10
jae 0x46ed05
mov eax, 0x673278
mov edx, dword [0x673288]
add edx, eax
cmp esi, 0x10
jae 0x46ed17
mov ecx, 0x673278
xor eax, eax
cmp ecx, edx
je 0x46ed3d
lea ecx, [ecx]
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 0x46ed20
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
push 0x673278
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46edb3
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46edb3
cmp dword [0x691188], 0
je 0x46ed9f
cmp dword [eax], 0
jne 0x46edb3
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46ed90
jmp 0x46edb3
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
push 1
call fcn.00500130
add esp, 4
test bl, bl
je 0x46ee56
cmp dword [0x691188], 0
je 0x46ee56
push 0x673294
call fcn.0040c6c0
xor edx, edx
div dword [0x69117c]
mov ecx, dword [0x691178]
add esp, 4
push 0x673294
lea esi, [ecx + edx*4]
push esi
mov ecx, 0x691178
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46ee56
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46ee56
cmp dword [0x691188], 0
je 0x46ee42
cmp dword [eax], 0
jne 0x46ee56
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46ee33
jmp 0x46ee56
mov edx, dword [0x69117c]
mov eax, dword [0x691178]
lea ecx, [eax + edx*4]
mov dword [0x691190], ecx
mov esi, dword [0x68d26c]
mov eax, dword [esi]
mov dword [ebp + 0xc], eax
cmp eax, esi
je 0x46ee8c
cmp dword [eax + 0x10], 0
je 0x46ee7d
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
mov esi, dword [0x68d26c]
lea ecx, [ebp + 0xc]
call fcn.00477090
mov eax, dword [ebp + 0xc]
cmp eax, esi
jne 0x46ee65
mov ecx, dword [esi + 4]
push ecx
mov ecx, 0x68d268
call fcn.0048b100
mov eax, dword [0x68d26c]
mov dword [eax + 4], eax
mov eax, dword [0x68d26c]
mov dword [eax], eax
mov eax, dword [0x68d26c]
mov dword [eax + 8], eax
mov dword [0x68d270], 0
test bl, bl
je 0x46ef53
cmp dword [0x691188], 0
je 0x46ef53
push 0x6732e8
call fcn.0040c6c0
xor edx, edx
div dword [0x69117c]
mov eax, dword [0x691178]
add esp, 4
push 0x6732e8
mov ecx, 0x691178
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46ef53
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46ef53
cmp dword [0x691188], 0
je 0x46ef3f
cmp dword [eax], 0
jne 0x46ef53
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46ef30
jmp 0x46ef53
mov ecx, dword [0x69117c]
mov edx, dword [0x691178]
lea eax, [edx + ecx*4]
mov dword [0x691190], eax
mov ecx, dword [0x68d3a8]
test ecx, ecx
je 0x46ef64
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov ecx, dword [0x68d3a0]
test ecx, ecx
je 0x46ef75
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
test bl, bl
je 0x46f013
cmp dword [0x691188], 0
je 0x46f013
push 0x672e50
call fcn.0040c6c0
xor edx, edx
div dword [0x69117c]
mov ecx, dword [0x691178]
add esp, 4
push 0x672e50
lea esi, [ecx + edx*4]
push esi
mov ecx, 0x691178
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46f013
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691178
mov dword [eax], edx
call fcn.00477670
sub dword [0x691188], eax
mov eax, dword [0x691190]
cmp esi, eax
jne 0x46f013
cmp dword [0x691188], 0
je 0x46efff
cmp dword [eax], 0
jne 0x46f013
jmp 0x46eff0
add eax, 4
mov dword [0x691190], eax
cmp dword [eax], 0
je 0x46eff0
jmp 0x46f013
mov edx, dword [0x69117c]
mov eax, dword [0x691178]
lea ecx, [eax + edx*4]
mov dword [0x691190], ecx
cmp dword [0x68d1e0], 0
je 0x46f0c7
push 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
mov edi, dword [ebp + 8]
je 0x46f03c
mov eax, edi
jmp 0x46f053
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ebp + 0xc], eax
cmp eax, 0x14
mov dword [ebp + 8], 0x14
lea eax, [ebp + 0xc]
jl 0x46f068
lea eax, [ebp + 8]
mov edx, dword [eax]
mov ecx, dword [0x68d1e0]
push edx
call fcn.004ad7c0
mov eax, dword [0x68d1e0]
test eax, eax
je 0x46f0b8
lea esi, [eax + 0x17c]
mov eax, dword [0x68d1e4]
cmp eax, dword [esi]
je 0x46f0b8
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.0052d217
or ebx, 0xffffffff
add esp, 4
add dword [esi + 4], ebx
mov dword [0x68d1e0], 0
jmp 0x46f0cd
or ebx, 0xffffffff
mov dword [0x68d1e0], 0
jmp 0x46f0cd
mov edi, dword [ebp + 8]
or ebx, 0xffffffff
cmp dword [0x68d3b0], 0
je 0x46f213
cmp edi, 1
jne 0x46f0e3
mov esi, edi
jmp 0x46f0fd
mov eax, edi
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 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
je 0x46f116
mov eax, esi
jmp 0x46f12d
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ecx, dword [0x68d3b0]
push eax
call fcn.00508b40
mov eax, dword [0x68d3b0]
test eax, eax
je 0x46f16c
lea esi, [eax + 0x17c]
mov eax, dword [0x68d3b4]
cmp eax, dword [esi]
je 0x46f16c
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.0052d217
add esp, 4
add dword [esi + 4], ebx
cmp byte [ebp + 0x10], 0
mov dword [0x68d3b0], 0
je 0x46f213
cmp dword [0x691128], 0
je 0x46f213
push 0x6729d4
call fcn.0040c6c0
xor edx, edx
div dword [0x69111c]
mov eax, dword [0x691118]
add esp, 4
push 0x6729d4
mov ecx, 0x691118
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46f213
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691118
mov dword [eax], edx
call fcn.0046cec0
sub dword [0x691128], eax
mov eax, dword [0x691130]
cmp esi, eax
jne 0x46f213
cmp dword [0x691128], 0
je 0x46f1ff
cmp dword [eax], 0
jne 0x46f213
lea ecx, [ecx]
add eax, 4
mov dword [0x691130], eax
cmp dword [eax], 0
je 0x46f1f0
jmp 0x46f213
mov ecx, dword [0x69111c]
mov edx, dword [0x691118]
lea eax, [edx + ecx*4]
mov dword [0x691130], eax
cmp dword [0x68d3b8], 0
je 0x46f357
cmp edi, 1
jne 0x46f229
mov esi, edi
jmp 0x46f244
and edi, 0xffff
mov eax, edi
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
push 0x672e18
mov ecx, 0x691118
call fcn.004084f0
cmp dword [eax + 0x1c], 0
je 0x46f25d
mov eax, esi
jmp 0x46f274
mov eax, 0x20
sub eax, dword [0x690b5c]
imul eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ecx, dword [0x68d3b8]
push eax
call fcn.00507890
mov eax, dword [0x68d3b8]
test eax, eax
je 0x46f2b3
lea esi, [eax + 0x17c]
mov eax, dword [0x68d3bc]
cmp eax, dword [esi]
je 0x46f2b3
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.0052d217
add esp, 4
add dword [esi + 4], ebx
cmp byte [ebp + 0x10], 0
mov dword [0x68d3b8], 0
je 0x46f357
cmp dword [0x691128], 0
je 0x46f357
push 0x672a98
call fcn.0040c6c0
xor edx, edx
div dword [0x69111c]
mov eax, dword [0x691118]
add esp, 4
push 0x672a98
mov ecx, 0x691118
lea esi, [eax + edx*4]
push esi
call fcn.0046ce20
mov ecx, dword [eax]
test ecx, ecx
je 0x46f357
mov edx, dword [ecx]
push edx
push ecx
mov ecx, 0x691118
mov dword [eax], edx
call fcn.0046cec0
sub dword [0x691128], eax
mov eax, dword [0x691130]
cmp esi, eax
jne 0x46f357
cmp dword [0x691128], 0
je 0x46f343
cmp dword [eax], 0
jne 0x46f357
add eax, 4
mov dword [0x691130], eax
cmp dword [eax], 0
je 0x46f334
jmp 0x46f357
mov ecx, dword [0x69111c]
mov edx, dword [0x691118]
lea eax, [edx + ecx*4]
mov dword [0x691130], eax
mov ecx, dword [0x68a3ec]
call fcn.004f9920
test byte [0x689fc8], 1
jne 0x46f393
or dword [0x689fc8], 1
mov ecx, 0x689f90
mov dword [ebp - 4], 3
call fcn.0047e7b0
push 0x5f3430
call fcn.0052e444
add esp, 4
mov dword [ebp - 4], ebx
mov ecx, 0x689f90
call fcn.0047e950
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc