Function at 0x599f20
Capabilities:
Encode data using base64

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40cd7c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x520
mov eax, dword [0x412008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3cc], 0
cmp dword [0x41383c], 0
jne 0x59bd23
push 0x418
mov dword [ebp - 0x3d8], 0x20
call fcn.005a36b1
add esp, 4
mov dword [ebp - 0x3bc], eax
mov ecx, eax
mov dword [eax], 0
call fcn.005990f0
push 0
call dword [0x40e2c0]
add esp, 4
push eax
call dword [0x40e2c8]
add esp, 4
lea ecx, [ebp - 0x2b0]
call fcn.00599c00
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov al, byte [0x40e4b0]
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x258], 1
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], al
mov byte [ebp - 0x267], 0
mov ecx, 0x413338
mov byte [ebp - 4], 1
movups xmmword [ebp - 0x340], xmm0
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x32c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a020
sub ecx, edx
push ecx
push 0x413338
lea ecx, [ebp - 0x340]
call fcn.0059e0f0
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x340]
lea ecx, [ebp - 0x388]
call fcn.005998f0
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x32c]
cmp ecx, 0x10
jb 0x59a097
mov edx, dword [ebp - 0x340]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a08d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59a0d5
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a0cb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, 0x412738
mov dword [ebp - 0x330], 0
xorps xmm0, xmm0
mov dword [ebp - 0x32c], 0
movups xmmword [ebp - 0x340], xmm0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a100
sub ecx, edx
push ecx
push 0x412738
lea ecx, [ebp - 0x340]
call fcn.0059e0f0
mov byte [ebp - 4], 6
lea edx, [ebp - 0x340]
cmp dword [ebp - 0x32c], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x298], xmm0
cmovae edx, dword [ebp - 0x340]
mov ecx, edx
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a155
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x298]
call fcn.0059e0f0
push 0x64
mov byte [ebp - 4], 7
call dword [0x40e1e0]
add esp, 4
mov edi, eax
push 0xff
push 0x413848
push 0x413844
push 0x413838
push 0x413840
push 0xff
push 0x413738
push 0x40e4a4
call dword [0x40e07c]
mov ecx, dword [0x413840]
mov eax, ecx
shl eax, 5
add eax, ecx
push eax
imul eax, ecx, 0x19
push eax
push 0x40e4a8
push edi
call fcn.00598a80
mov ecx, edi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x3bc], esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a1d7
sub ecx, edx
push ecx
push edi
push ecx
lea ecx, [ebp - 0x298]
call fcn.0059e840
xorps xmm0, xmm0
mov dword [ebp - 0x3cc], 8
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea ecx, [ebp - 0x370]
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.0059fd60
add esp, 0x18
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x284]
cmp ecx, 0x10
jb 0x59a27b
mov edx, dword [ebp - 0x298]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a271
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59a271
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
cmp dword [ebp - 0x374], 0x10
lea eax, [ebp - 0x388]
mov esi, dword [ebp - 0x388]
mov ecx, 0x40e384
setae dh
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0xf
cmovae eax, esi
mov byte [ebp - 0x298], 0
mov byte [ebp - 0x3bd], dh
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x59a2e0
test dl, dl
je 0x59a2dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x59a2e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x59a2c0
xor eax, eax
jmp 0x59a2e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x59a380
test dh, dh
lea eax, [ebp - 0x388]
mov ecx, 0x40e4b4
cmovne eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x59a320
test dl, dl
je 0x59a31c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x59a320
add eax, 2
add ecx, 2
test dl, dl
jne 0x59a300
xor eax, eax
jmp 0x59a325
sbb eax, eax
or eax, 1
test eax, eax
je 0x59a380
cmp byte [ebp - 0x3bd], 0
lea edx, [ebp - 0x388]
xorps xmm0, xmm0
cmovne edx, esi
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a357
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.0059e0f0
lea ecx, [ebp - 0x280]
call fcn.0059fd60
add esp, 0x18
mov ecx, eax
mov eax, 9
jmp 0x59a3d8
cmp dword [ebp - 0x35c], 0x10
lea edx, [ebp - 0x370]
xorps xmm0, xmm0
mov dword [ebp - 0x258], 0
cmovae edx, dword [ebp - 0x370]
mov ecx, edx
mov dword [ebp - 0x254], 0
movups xmmword [ebp - 0x268], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a3b7
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x268]
call fcn.0059e0f0
lea ecx, [ebp - 0x268]
mov eax, 0xa
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x3c4], eax
movups xmmword [ebp - 0x310], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [ebp - 0x300], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
mov dword [ebp - 4], 0xb
test al, 2
je 0x59a456
mov ecx, dword [ebp - 0x254]
and eax, 0xfffffffd
mov dword [ebp - 0x3c4], eax
cmp ecx, 0x10
jb 0x59a456
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a446
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59a493
push ecx
push edx
call fcn.005a36e1
mov eax, dword [ebp - 0x3c4]
add esp, 8
mov byte [ebp - 4], 0xc
test al, 1
je 0x59a4be
mov ecx, dword [ebp - 0x26c]
and eax, 0xfffffffe
mov dword [ebp - 0x3c4], eax
cmp ecx, 0x10
jb 0x59a4a3
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a499
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59a499
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov edi, dword [ebp - 0x300]
xor esi, esi
test edi, edi
je 0x59a50d
nop word [eax + eax]
cmp dword [ebp - 0x2fc], 0x10
lea eax, [ebp - 0x310]
jb 0x59a4ea
mov edi, dword [ebp - 0x310]
lea eax, [edi + esi]
jmp 0x59a4f2
add eax, esi
lea edi, [ebp - 0x310]
movsx eax, byte [eax]
push eax
call dword [0x40e2a4]
mov byte [edi + esi], al
add esp, 4
mov edi, dword [ebp - 0x300]
inc esi
cmp esi, edi
jb 0x59a4d0
push 0x19
call dword [0x40e024]
mov eax, 0x7fffffff
sub eax, edi
cmp eax, 0x3f
jb 0x59bd48
cmp dword [ebp - 0x2fc], 0x10
lea eax, [ebp - 0x310]
push edi
cmovae eax, dword [ebp - 0x310]
push eax
push 0x3f
push 0x40e4c8
push ecx
push dword [ebp - 0x3bc]
lea ecx, [ebp - 0x298]
call fcn.0059e5a0
mov edi, dword [ebp - 0x3c4]
or edi, 0x10
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x284]
mov eax, edx
mov ecx, dword [ebp - 0x288]
sub eax, ecx
push 6
push 0x40e4bc
cmp eax, 6
jb 0x59a5ad
cmp edx, 0x10
lea esi, [ebp - 0x298]
lea eax, [ecx + 6]
cmovae esi, dword [ebp - 0x298]
add esi, ecx
mov dword [ebp - 0x288], eax
push esi
call fcn.005a448f
add esp, 0xc
mov byte [esi + 6], 0
lea eax, [ebp - 0x298]
jmp 0x59a5c7
mov byte [ebp - 0x3c8], 0
lea ecx, [ebp - 0x298]
push dword [ebp - 0x3c8]
push 6
call fcn.0059e400
mov dword [ebp - 0x2b8], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c8], xmm0
mov dword [ebp - 0x2b4], 0
or edi, 0x20
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2c8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2b8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 0x10
mov ecx, dword [ebp - 0x2a0]
cmovae edx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x2b4]
mov esi, dword [ebp - 0x2b8]
sub eax, esi
mov dword [ebp - 0x3c8], ecx
push ecx
push edx
cmp ecx, eax
ja 0x59a682
cmp dword [ebp - 0x2b4], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0x2b8], eax
lea eax, [ebp - 0x2c8]
cmovae eax, dword [ebp - 0x2c8]
add esi, eax
push esi
call fcn.005a448f
mov eax, dword [ebp - 0x3c8]
add esp, 0xc
mov byte [eax + esi], 0
lea eax, [ebp - 0x2c8]
jmp 0x59a69b
mov byte [ebp - 0x3c8], 0
push dword [ebp - 0x3c8]
push ecx
lea ecx, [ebp - 0x2c8]
call fcn.0059e400
mov dword [ebp - 0x2e8], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2f8], xmm0
mov dword [ebp - 0x2e4], 0
or edi, 0x40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2f8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2e8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x2b4]
cmp ecx, 0x10
jb 0x59a71e
mov edx, dword [ebp - 0x2c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a714
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59a769
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2b4], 0xf
mov byte [ebp - 0x2c8], 0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x284]
cmp ecx, 0x10
jb 0x59a779
mov edx, dword [ebp - 0x298]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a76f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59a76f
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov eax, dword [0x40e508]
xorps xmm0, xmm0
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x268], eax
movzx eax, word [0x40e50c]
mov dword [ebp - 0x258], 6
mov dword [ebp - 0x254], 0xf
mov word [ebp - 0x264], ax
mov byte [ebp - 0x262], 0
mov eax, dword [0x40e518]
movups xmmword [ebp - 0x2e0], xmm0
mov dword [ebp - 0x2d8], eax
movq xmm0, qword [0x40e510]
movzx eax, word [0x40e51c]
mov dword [ebp - 0x2d0], 0xe
mov dword [ebp - 0x2cc], 0xf
movq qword [ebp - 0x2e0], xmm0
mov word [ebp - 0x2d4], ax
mov byte [ebp - 0x2d2], 0
mov byte [ebp - 4], 0x13
lea edx, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 0x10
cmovae edx, dword [ebp - 0x2b0]
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a820
sub ecx, esi
push ecx
push edx
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.0059e840
or edi, 0x80
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x3a0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x390], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0x14
push eax
lea edx, [ebp - 0x3a0]
lea ecx, [ebp - 0x358]
call fcn.00599d20
add esp, 4
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x38c]
cmp ecx, 0x10
jb 0x59a8c2
mov edx, dword [ebp - 0x3a0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a8b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59a947
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 0x10
jb 0x59a8fc
mov edx, dword [ebp - 0x2e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a8f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59a947
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], 0xf
mov byte [ebp - 0x2e0], 0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59a957
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59a94d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59a94d
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
push 0
push 0
push 0
push 0
push 0x40e520
call dword [0x40e1b4]
cmp dword [ebp - 0x344], 0x10
lea ecx, [ebp - 0x358]
mov esi, eax
lea eax, [ebp - 0x250]
cmovae ecx, dword [ebp - 0x358]
push ecx
push 0x40e530
push eax
call fcn.00598a80
lea ecx, [ebp - 0x250]
add esp, 0xc
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59a9a0
push 0
push 0x80000000
sub ecx, edx
lea eax, [ebp - 0x2f8]
cmp dword [ebp - 0x2e4], 0x10
push ecx
cmovae eax, dword [ebp - 0x2f8]
lea ecx, [ebp - 0x250]
push ecx
push eax
push esi
call dword [0x40e1b8]
push 0x19
mov esi, eax
call dword [0x40e024]
lea eax, [ebp - 0x3d8]
push eax
push 0x40
lea eax, [ebp - 0x58]
push eax
push esi
call dword [0x40e1c0]
push 0x19
call dword [0x40e024]
mov eax, dword [ebp - 0x3d8]
cmp eax, 0x40
jae 0x59bd43
cmp dword [ebp - 0x2e4], 0x10
mov byte [ebp + eax - 0x58], 0
lea eax, [ebp - 0x2f8]
cmovae eax, dword [ebp - 0x2f8]
push eax
call dword [0x40e1bc]
xorps xmm0, xmm0
mov dword [ebp - 0x288], 0
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x284], 0
movups xmmword [ebp - 0x298], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59aa50
sub ecx, edx
lea eax, [ebp - 0x58]
push ecx
push eax
lea ecx, [ebp - 0x298]
call fcn.0059e0f0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x480], 0x40e798
call dword [0x40e0f4]
push 0
push 0
lea eax, [ebp - 0x470]
mov byte [ebp - 4], 0x1a
or edi, 0x200
lea ecx, [ebp - 0x480]
push eax
mov dword [ebp - 0x3cc], edi
call dword [0x40e0fc]
mov dword [ebp - 4], 0x1b
mov eax, dword [ebp - 0x480]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x480], 0x40e7a4
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x484], eax
lea eax, [ebp - 0x470]
mov ecx, eax
mov dword [ebp - 0x3bc], eax
call dword [0x40e0d4]
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x298]
cmp dword [ebp - 0x284], 0x10
lea ecx, [ebp - 0x470]
push 2
push dword [ebp - 0x288]
cmovae eax, dword [ebp - 0x298]
push eax
mov dword [ebp - 0x470], 0x40e75c
call fcn.0059d860
xor eax, eax
xor esi, esi
xor edi, edi
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], edi
mov dword [ebp - 0x3cc], esi
mov dword [ebp - 0x2b4], esi
xorps xmm0, xmm0
mov dword [ebp - 0x2d0], esi
movups xmmword [ebp - 0x2e0], xmm0
mov dword [ebp - 0x2cc], 0xf
mov byte [ebp - 0x2e0], al
push ecx
lea edx, [ebp - 0x2e0]
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x480]
call fcn.0059e9f0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x59ac01
nop
cmp dword [ebp - 0x2d0], 0
je 0x59abce
lea eax, [ebp - 0x2e0]
push eax
cmp edi, esi
je 0x59abb6
mov ecx, edi
call fcn.0059d030
add edi, 0x18
mov dword [ebp - 0x2b8], edi
jmp 0x59abce
push edi
lea ecx, [ebp - 0x2bc]
call fcn.0059ee00
mov esi, dword [ebp - 0x2b4]
mov edi, dword [ebp - 0x2b8]
push ecx
lea edx, [ebp - 0x2e0]
lea ecx, [ebp - 0x480]
call fcn.0059e9f0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x59ab90
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x3cc], esi
mov dword [ebp - 0x3c4], eax
push 0x19
call dword [0x40e024]
cmp dword [ebp - 0x2e4], 0x10
lea eax, [ebp - 0x2f8]
cmovae eax, dword [ebp - 0x2f8]
push eax
call dword [0x40e1bc]
mov ecx, dword [ebp - 0x2a0]
lea esi, [ebp - 0x58]
mov eax, 0x7fffffff
sub esp, 0x18
sub eax, ecx
mov dword [ebp - 0x3bc], esp
cmp eax, 4
jb 0x59bd4d
cmp dword [ebp - 0x29c], 0x10
lea eax, [ebp - 0x2b0]
push 4
cmovae eax, dword [ebp - 0x2b0]
push 0x40e574
push ecx
push eax
push ecx
push dword [ebp - 0x3bc]
lea ecx, [ebp - 0x280]
call fcn.0059e5a0
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 0x270]
sub esp, 0x18
cmp dword [ebp - 0x29c], 0x10
mov ecx, dword [ebp - 0x2a0]
cmovae edx, dword [ebp - 0x2b0]
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x3c8]
mov dword [ebp - 0x3d4], esp
mov dword [ebp - 0x3d0], ecx
push ecx
push edx
cmp ecx, eax
ja 0x59ad03
mov esi, dword [ebp - 0x3c8]
cmp dword [ebp - 0x26c], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0x270], eax
lea eax, [ebp - 0x280]
cmovae eax, dword [ebp - 0x280]
add esi, eax
push esi
call fcn.005a448f
mov eax, dword [ebp - 0x3d0]
add esp, 0xc
mov byte [esi + eax], 0
lea eax, [ebp - 0x280]
lea esi, [ebp - 0x58]
jmp 0x59ad1c
mov byte [ebp - 0x3d0], 0
push dword [ebp - 0x3d0]
push ecx
lea ecx, [ebp - 0x280]
call fcn.0059e400
mov ecx, dword [ebp - 0x3d4]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov ecx, dword [ebp - 0x3bc]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.0059fd60
add esp, 0x18
lea ecx, [ebp - 0x268]
call fcn.0059fd60
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x59ad80
mov eax, dword [eax]
nop dword [eax + eax]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x59ada0
test cl, cl
je 0x59ad9c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x59ada0
add eax, 2
add esi, 2
test cl, cl
jne 0x59ad80
xor esi, esi
jmp 0x59ada5
sbb esi, esi
or esi, 1
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59addb
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59add1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59ae26
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], 0
cmp ecx, 0x10
jb 0x59ae36
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59ae2c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59ae2c
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
test esi, esi
jne 0x59b1c2
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 0x10
jb 0x59ae78
mov edx, dword [ebp - 0x2e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59ae6e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x3c4]
test ecx, ecx
je 0x59af38
cmp ecx, edi
je 0x59aef1
lea esi, [ecx + 0x14]
nop dword [eax]
mov ecx, dword [esi]
lea eax, [esi - 0x14]
mov dword [ebp - 0x3bc], eax
cmp ecx, 0x10
jb 0x59aed1
mov eax, dword [eax]
inc ecx
cmp ecx, 0x1000
jb 0x59aec1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
mov eax, edx
push ecx
push eax
call fcn.005a36e1
mov eax, dword [ebp - 0x3bc]
add esp, 8
mov dword [esi - 4], 0
mov dword [esi], 0xf
add esi, 0x18
mov byte [eax], 0
lea eax, [esi - 0x14]
cmp eax, edi
jne 0x59ae90
mov ecx, dword [ebp - 0x3c4]
mov edx, dword [ebp - 0x3cc]
mov eax, 0x2aaaaaab
sub edx, ecx
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, ecx
shl edx, 3
cmp edx, 0x1000
jb 0x59af2e
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push edx
push ecx
call fcn.005a36e1
add esp, 8
mov eax, dword [ebp - 0x480]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x480], 0x40e7a4
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x484], eax
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], 0x40e75c
call fcn.0059d650
lea ecx, [ebp - 0x470]
call dword [0x40e100]
lea ecx, [ebp - 0x468]
call dword [0x40e138]
lea ecx, [ebp - 0x420]
call dword [0x40e128]
mov ecx, dword [ebp - 0x284]
cmp ecx, 0x10
jb 0x59afd2
mov edx, dword [ebp - 0x298]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59afc8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x344]
cmp ecx, 0x10
jb 0x59b00c
mov edx, dword [ebp - 0x358]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b002
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x2e4]
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
cmp ecx, 0x10
jb 0x59b061
mov edx, dword [ebp - 0x2f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b057
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0xf
mov byte [ebp - 0x2f8], 0
cmp ecx, 0x10
jb 0x59b0b6
mov edx, dword [ebp - 0x310]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b0ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x35c]
cmp ecx, 0x10
jb 0x59b0f0
mov edx, dword [ebp - 0x370]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b0e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x32c]
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], 0
cmp ecx, 0x10
jb 0x59b145
mov edx, dword [ebp - 0x340]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b13b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov eax, dword [ebp - 0x374]
cmp eax, 0x10
jb 0x59b181
mov edx, dword [ebp - 0x388]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x59b177
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x29c]
cmp ecx, 0x10
jb 0x59b1bb
mov edx, dword [ebp - 0x2b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b1b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov al, 1
jmp 0x59bd25
mov ecx, dword [ebp - 0x2a0]
lea esi, [ebp - 0x58]
mov eax, 0x7fffffff
sub esp, 0x18
sub eax, ecx
mov dword [ebp - 0x3d0], esp
cmp eax, 7
jb 0x59bd52
cmp dword [ebp - 0x29c], 0x10
lea eax, [ebp - 0x2b0]
push 7
cmovae eax, dword [ebp - 0x2b0]
push 0x40e57c
push ecx
push eax
push ecx
push dword [ebp - 0x3bc]
lea ecx, [ebp - 0x280]
call fcn.0059e5a0
mov byte [ebp - 4], 0x21
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 0x270]
sub esp, 0x18
cmp dword [ebp - 0x29c], 0x10
mov ecx, dword [ebp - 0x2a0]
cmovae edx, dword [ebp - 0x2b0]
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x3c8]
mov dword [ebp - 0x3d4], esp
mov dword [ebp - 0x3bc], ecx
push ecx
push edx
cmp ecx, eax
ja 0x59b2a1
mov esi, dword [ebp - 0x3c8]
cmp dword [ebp - 0x26c], 0x10
lea eax, [ecx + esi]
mov dword [ebp - 0x270], eax
lea eax, [ebp - 0x280]
cmovae eax, dword [ebp - 0x280]
add esi, eax
push esi
call fcn.005a448f
mov eax, dword [ebp - 0x3bc]
add esp, 0xc
mov byte [esi + eax], 0
lea eax, [ebp - 0x280]
lea esi, [ebp - 0x58]
jmp 0x59b2ba
mov byte [ebp - 0x3bc], 0
push dword [ebp - 0x3bc]
push ecx
lea ecx, [ebp - 0x280]
call fcn.0059e400
mov ecx, dword [ebp - 0x3d4]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov ecx, dword [ebp - 0x3d0]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.0059fd60
add esp, 0x18
lea ecx, [ebp - 0x268]
call fcn.0059fd60
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x59b320
mov eax, dword [eax]
nop dword [eax]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x59b340
test cl, cl
je 0x59b33c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x59b340
add eax, 2
add esi, 2
test cl, cl
jne 0x59b320
xor esi, esi
jmp 0x59b345
sbb esi, esi
or esi, 1
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59b37b
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b371
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b3c6
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], 0
cmp ecx, 0x10
jb 0x59b3d6
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b3cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59b3cc
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
test esi, esi
jne 0x59b757
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 0x10
jb 0x59b418
mov edx, dword [ebp - 0x2e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b40e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x3c4]
test ecx, ecx
je 0x59b4d8
cmp ecx, edi
je 0x59b491
lea esi, [ecx + 0x14]
nop dword [eax]
mov ecx, dword [esi]
lea eax, [esi - 0x14]
mov dword [ebp - 0x3bc], eax
cmp ecx, 0x10
jb 0x59b471
mov eax, dword [eax]
inc ecx
cmp ecx, 0x1000
jb 0x59b461
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
mov eax, edx
push ecx
push eax
call fcn.005a36e1
mov eax, dword [ebp - 0x3bc]
add esp, 8
mov dword [esi - 4], 0
mov dword [esi], 0xf
add esi, 0x18
mov byte [eax], 0
lea eax, [esi - 0x14]
cmp eax, edi
jne 0x59b430
mov ecx, dword [ebp - 0x3c4]
mov edx, dword [ebp - 0x3cc]
mov eax, 0x2aaaaaab
sub edx, ecx
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, ecx
shl edx, 3
cmp edx, 0x1000
jb 0x59b4ce
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push edx
push ecx
call fcn.005a36e1
add esp, 8
mov eax, dword [ebp - 0x480]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x480], 0x40e7a4
mov eax, dword [ebp - 0x480]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x484], eax
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], 0x40e75c
call fcn.0059d650
lea ecx, [ebp - 0x470]
call dword [0x40e100]
lea ecx, [ebp - 0x468]
call dword [0x40e138]
lea ecx, [ebp - 0x420]
call dword [0x40e128]
mov ecx, dword [ebp - 0x284]
cmp ecx, 0x10
jb 0x59b572
mov edx, dword [ebp - 0x298]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b568
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x344]
cmp ecx, 0x10
jb 0x59b5ac
mov edx, dword [ebp - 0x358]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b5a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x2e4]
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
cmp ecx, 0x10
jb 0x59b601
mov edx, dword [ebp - 0x2f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b5f7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0xf
mov byte [ebp - 0x2f8], 0
cmp ecx, 0x10
jb 0x59b656
mov edx, dword [ebp - 0x310]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b64c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x35c]
cmp ecx, 0x10
jb 0x59b690
mov edx, dword [ebp - 0x370]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b686
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x32c]
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], 0
cmp ecx, 0x10
jb 0x59b6e1
mov edx, dword [ebp - 0x340]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b6d7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov eax, dword [ebp - 0x374]
cmp eax, 0x10
jb 0x59b719
mov edx, dword [ebp - 0x388]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x59b70f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b751
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x29c]
cmp ecx, 0x10
jb 0x59b1bb
mov edx, dword [ebp - 0x2b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b1b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59b1b1
call dword [0x40e20c]
mov al, byte [0x40e4b0]
xorps xmm0, xmm0
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x258], 1
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], al
mov byte [ebp - 0x267], 0
mov byte [ebp - 4], 0x22
push 0x60
movups xmmword [ebp - 0x280], xmm0
call fcn.005a36b1
mov ecx, 0x17
mov dword [ebp - 0x280], eax
mov esi, 0x40e588
mov dword [ebp - 0x270], 0x5d
mov edi, eax
mov dword [ebp - 0x26c], 0x5f
rep movsd dword es:[edi], dword [esi]
add esp, 4
movsb byte es:[edi], byte [esi]
mov byte [eax + 0x5d], 0
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0x23
push eax
lea edx, [ebp - 0x280]
lea ecx, [ebp - 0x3b8]
call fcn.005998f0
add esp, 4
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0x10
jb 0x59b822
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b818
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59b852
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59b862
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b858
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59b858
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov al, byte [0x40e4b0]
xorps xmm0, xmm0
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x258], 1
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], al
mov byte [ebp - 0x267], 0
mov byte [ebp - 4], 0x27
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x300]
sub eax, ecx
cmp eax, 0xc
jb 0x59bd57
cmp dword [ebp - 0x2fc], 0x10
lea eax, [ebp - 0x310]
push ecx
cmovae eax, dword [ebp - 0x310]
push eax
push 0xc
push 0x40e628
push ecx
push dword [ebp - 0x3bc]
lea ecx, [ebp - 0x280]
call fcn.0059e5a0
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x26c]
mov eax, edx
mov ecx, dword [ebp - 0x270]
sub eax, ecx
push 0x3d
push 0x40e5e8
cmp eax, 0x3d
jb 0x59b92b
cmp edx, 0x10
lea esi, [ebp - 0x280]
lea eax, [ecx + 0x3d]
cmovae esi, dword [ebp - 0x280]
add esi, ecx
mov dword [ebp - 0x270], eax
push esi
call fcn.005a448f
add esp, 0xc
mov byte [esi + 0x3d], 0
lea eax, [ebp - 0x280]
jmp 0x59b945
mov byte [ebp - 0x3bc], 0
lea ecx, [ebp - 0x280]
push dword [ebp - 0x3bc]
push 0x3d
call fcn.0059e400
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x328], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x318], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0x29
push eax
lea edx, [ebp - 0x328]
lea ecx, [ebp - 0x3a0]
call fcn.005998f0
add esp, 4
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp - 0x314]
cmp ecx, 0x10
jb 0x59b9ca
mov edx, dword [ebp - 0x328]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b9c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59ba4f
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0x10
jb 0x59ba04
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59b9fa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59ba4f
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x59ba5f
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59ba55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59ba55
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
push 0x1f4
push 0x3e8
mov dword [0x41383c], 1
call dword [0x40e02c]
cmp dword [ebp - 0x38c], 0x10
lea edx, [ebp - 0x3a0]
xorps xmm0, xmm0
mov dword [ebp - 0x258], 0
cmovae edx, dword [ebp - 0x3a0]
mov ecx, edx
mov dword [ebp - 0x254], 0
movups xmmword [ebp - 0x268], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x59bab0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x268]
call fcn.0059e0f0
mov eax, dword [0x40e640]
xorps xmm0, xmm0
movups xmmword [ebp - 0x328], xmm0
mov ecx, 0xf
mov dword [ebp - 0x320], eax
movq xmm0, qword [0x40e638]
mov al, byte [0x40e644]
mov dword [ebp - 0x318], 0xd
mov dword [ebp - 0x314], ecx
movq qword [ebp - 0x328], xmm0
mov byte [ebp - 0x31c], al
mov byte [ebp - 0x31b], 0
sub esp, 0xc
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0x328]
lea ecx, [ebp - 0x530]
push eax
call fcn.0059d470
mov eax, dword [ebp - 0x530]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x530], 0x40e740
mov eax, dword [ebp - 0x530]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x534], eax
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x530]
cmp dword [ebp - 0x4e0], 0
je 0x59bbbf
cmp dword [ebp - 0x254], 0x10
lea edx, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae edx, dword [ebp - 0x268]
call fcn.0059eba0
add esp, 4
lea ecx, [ebp - 0x52c]
call fcn.0059d3f0
test eax, eax
jne 0x59bbb0
push eax
mov eax, dword [ebp - 0x530]
lea ecx, [ebp - 0x530]
push 2
mov eax, dword [eax + 4]
add ecx, eax
call dword [0x40e0f0]
mov byte [ebp - 0x3bd], 1
lea ecx, [ebp - 0x530]
jmp 0x59bbc6
mov byte [ebp - 0x3bd], 0
call fcn.00599e60
mov ecx, dword [ebp - 0x314]
cmp ecx, 0x10
jb 0x59bc01
mov edx, dword [ebp - 0x328]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59bbf7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x59bc48
push ecx
push edx
call fcn.005a36e1
add esp, 8
mov ecx, dword [ebp - 0x254]
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 0xf
mov byte [ebp - 0x328], 0
cmp ecx, 0x10
jb 0x59bc58
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x59bc4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x59bc4e
call dword [0x40e20c]
push ecx
push edx
call fcn.005a36e1
add esp, 8
cmp byte [ebp - 0x3bd], 0
je 0x59bc94
push 0x10
push 0x40e648
lea ecx, [ebp - 0x3a0]
call fcn.0059cfd0
push eax
push 0
call dword [0x40e17c]
push 0xa
push 0
push 0
push 0x40e638
push 0x40e650
push 0
call dword [0x40e174]
lea ecx, [ebp - 0x3a0]
call fcn.0059cfe0
lea ecx, [ebp - 0x3b8]
call fcn.0059cfe0
lea ecx, [ebp - 0x2e0]
call fcn.0059cfe0
lea ecx, [ebp - 0x2bc]
call fcn.0059bf50
lea ecx, [ebp - 0x480]
call fcn.0059bd60
lea ecx, [ebp - 0x298]
call fcn.0059cfe0
lea ecx, [ebp - 0x358]
call fcn.0059cfe0
lea ecx, [ebp - 0x2f8]
call fcn.0059cfe0
lea ecx, [ebp - 0x310]
call fcn.0059cfe0
lea ecx, [ebp - 0x370]
call fcn.0059cfe0
lea ecx, [ebp - 0x340]
call fcn.0059cfe0
lea ecx, [ebp - 0x388]
call fcn.0059cfe0
lea ecx, [ebp - 0x2b0]
call fcn.0059cfe0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005a34a6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.005a35d6
call fcn.00599840
call fcn.00599840
call fcn.00599840
call fcn.00599840
int3