Function at 0x4373a0
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x72baf2
mov eax, dword fs:[0]
push eax
mov eax, 0x5ee4
call fcn.006a8560
mov eax, dword [0x7cdffc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
lea eax, [ebx + 0xd0]
mov ecx, eax
mov dword [ebp - 0x5ac8], eax
call fcn.004a1400
push 0x3e8
call dword [0x7405ac]
push 0x4000
call fcn.00562f31
add esp, 4
mov dword [ebp - 0x5ab8], eax
push 0x4000
call fcn.00562f31
add esp, 4
mov dword [ebp - 0x5abc], eax
push 0x4000
call fcn.00562f31
mov edi, dword [ebp - 0x5ab8]
add esp, 4
mov dword [ebp - 0x5ac0], eax
push 0x4000
push 0
push edi
call fcn.006e6ec0
add esp, 0xc
push 0x4000
push 0
push dword [ebp - 0x5abc]
call fcn.006e6ec0
add esp, 0xc
push 0x4000
push 0
push dword [ebp - 0x5ac0]
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x2a0]
push 0x190
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
mov dword [ebp - 0x5ab4], 0
mov dword [ebp - 0x2800], 0xf
mov dword [ebp - 0x2804], 0
mov byte [ebp - 0x2814], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x2818], 0xf
mov dword [ebp - 0x281c], 0
mov byte [ebp - 0x282c], 0
push 0x100
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 1
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x400]
push 0x100
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x27f8]
push 0x1000
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x17f8]
push 0x1000
push 0
push eax
call fcn.006e6ec0
add esp, 8
lea ecx, [ebx + 0xd0]
call fcn.004a0b10
lea ecx, [ebp - 0x5ab0]
test al, al
jne 0x43761c
mov edx, 0x449
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43754f
mov eax, dword [eax]
mov ebx, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437583
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x449
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43759b
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4375c9
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x449
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4375e1
mov eax, dword [eax]
push 0
push 0x783858
push eax
push dword [0x8b27bc]
call dword [0x740754]
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438cf9
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
jmp 0x438cf9
mov edx, 0x549
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43762e
mov eax, dword [eax]
mov esi, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call esi
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437662
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x549
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43767a
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call esi
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4376a8
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
xor eax, eax
mov dword [ebp - 0x5a9c], 7
mov dword [ebp - 0x5aa0], 0
mov word [ebp - 0x5ab0], ax
cmp dword [ebx + 0x1c0], eax
jne 0x4376de
push 6
push 5
push 0x48d
push dword [0x8b320c]
call esi
call dword [0x7405a4]
neg eax
push 0x800
sbb esi, esi
lea eax, [ebx + 0x6b2c]
push 0
push eax
inc esi
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x100
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x27f8]
push 0x1000
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x17f8]
push 0x1000
push 0
push eax
call fcn.006e6ec0
mov eax, dword [ebx + 0x1c0]
add esp, 0xc
test eax, eax
jne 0x437753
lea edi, [ebx + 0x5e00]
jmp 0x437775
cmp eax, 1
je 0x43776f
cmp eax, 3
je 0x43776f
cmp eax, 2
je 0x437767
cmp eax, 4
jne 0x4377a9
lea edi, [ebx + 0x6600]
jmp 0x437775
lea edi, [ebx + 0x6200]
push edi
push str.save_data
call fcn.0048a840
push 0
push 0
push 0xffffffffffffffff
push edi
push 0
push esi
mov esi, dword [0x7405a0]
call esi
push eax
lea eax, [ebx + 0x6b2c]
push eax
push 0xffffffffffffffff
push edi
push 0
push 0
call esi
mov edi, dword [ebp - 0x5ab8]
mov eax, dword [ebx + 0x1c0]
test eax, eax
jne 0x437b9b
push 0x2aa0
push eax
lea eax, [ebp - 0x52d8]
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebx + 0x1d0]
push 0x2a30
push eax
lea eax, [ebp - 0x52d8]
push eax
call fcn.006e6940
mov ax, word [ebx + 0x6b28]
lea ecx, [ebx + 0x5e00]
mov word [ebp - 0x28a8], ax
lea edx, [ebp - 0x289d]
mov al, byte [ebx + 0x6b2a]
add esp, 0xc
mov byte [ebp - 0x28a6], al
sub edx, ecx
mov eax, dword [ebx + 0x6b20]
mov dword [ebp - 0x28a5], eax
mov eax, dword [ebx + 0x6b24]
mov dword [ebp - 0x28a1], eax
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x437827
mov esi, dword [ebp - 0x5ac0]
lea eax, [ebp - 0x52d8]
push 0x2aa0
push eax
push esi
call fcn.006e6940
mov cl, byte [ebp - 0x2839]
add esp, 0xc
mov dword [ebx + 0x1c4], 0
xor eax, eax
nop
xor cl, byte [eax + esi]
inc eax
mov dword [ebx + 0x1c4], eax
cmp eax, 0x2a9f
jb 0x437860
push 0x2aa0
lea eax, [ebp - 0x52d8]
mov byte [ebp - 0x2839], cl
push eax
push edi
call fcn.006e6940
add esp, 0xc
mov dword [ebx + 0x1c4], 0
nop word [eax + eax]
push 0x3f1
lea eax, [ebp - 0x5ef0]
mov dword [ebp - 0x5ab4], 0
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x7f8]
push 0x3f1
push 0
push eax
call fcn.006e6ec0
imul esi, dword [ebx + 0x1c4], 0x3f0
add esp, 0xc
mov ecx, 0xfc
add esi, edi
lea edi, [ebp - 0x5ef0]
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1c8], 0
nop dword [eax]
lea eax, [ebp - 0x5ab4]
push eax
lea eax, [ebp - 0x7f8]
push eax
push 0x3f0
lea eax, [ebp - 0x5ef0]
push eax
lea ecx, [ebx + 0xd0]
call fcn.004a1d10
movzx esi, ax
mov eax, 0xef00
cmp si, ax
je 0x437a9d
inc dword [ebx + 0x1c8]
cmp dword [ebx + 0x1c8], 2
jb 0x437900
mov ebx, dword [0x740748]
push 7
push 0
push 0x48d
push dword [0x8b320c]
call ebx
mov edx, 0x67f
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x437976
mov ecx, dword [ecx]
push esi
push ecx
lea eax, [ebp - 0x2a0]
push eax
call dword [0x74074c]
mov eax, dword [ebp - 0x5a9c]
add esp, 0xc
cmp eax, 8
jb 0x4379a6
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
xor eax, eax
mov dword [ebp - 0x5a9c], 7
push eax
mov word [ebp - 0x5ab0], ax
lea eax, [ebp - 0x2a0]
push eax
push 0x48c
push dword [0x8b320c]
mov dword [ebp - 0x5aa0], 0
call ebx
push 0
lea eax, [ebp - 0x2a0]
push eax
push 0x472
push dword [0x8b27bc]
call ebx
push 0
push 0x783858
lea eax, [ebp - 0x2a0]
push eax
push dword [0x8b27bc]
call dword [0x740754]
mov edx, 0x4bf
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437a20
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437a4e
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4bf
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437a66
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438cf9
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
jmp 0x438cf9
cmp dword [ebp - 0x5ab4], 0x3f0
jne 0x437aff
imul edi, dword [ebx + 0x1c4], 0x3f0
lea esi, [ebp - 0x7f8]
mov eax, dword [ebp - 0x5abc]
mov ecx, 0xfc
add edi, eax
rep movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x1c4]
cmp dword [ebx + 0x1c4], 0xb
jae 0x437ae2
mov edi, dword [ebp - 0x5ab8]
jmp 0x4378a0
movups xmm0, xmmword [ebx + 0x198]
mov dword [ebp - 0x5ab4], 0x2b50
movups xmmword [eax + 0x2b50], xmm0
jmp 0x438082
mov edx, 0x4c4
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437b17
mov eax, dword [eax]
mov ebx, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437b4b
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c4
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437b63
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437b91
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c4
jmp 0x4375ce
cmp eax, 1
je 0x437eb3
cmp eax, 3
je 0x437eb3
cmp eax, 2
je 0x437bbb
cmp eax, 4
jne 0x438082
push 0x3265
lea eax, [ebp - 0x5a98]
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebx + 0x2c00]
push 0x3200
push eax
lea eax, [ebp - 0x5a98]
push eax
call fcn.006e6940
lea ecx, [ebx + 0x6600]
add esp, 0xc
lea edx, [ebp - 0x2898]
sub edx, ecx
nop word [eax + eax]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x437c00
mov esi, dword [ebp - 0x5ac0]
lea eax, [ebp - 0x5a98]
push 0x3265
push eax
push esi
call fcn.006e6940
mov cl, byte [ebp - 0x2834]
add esp, 0xc
mov dword [ebx + 0x1c4], 0
xor eax, eax
nop word [eax + eax]
xor cl, byte [eax + esi]
inc eax
mov dword [ebx + 0x1c4], eax
cmp eax, 0x3264
jb 0x437c40
push 0x3265
lea eax, [ebp - 0x5a98]
mov byte [ebp - 0x2834], cl
push eax
push edi
call fcn.006e6940
add esp, 0xc
mov dword [ebx + 0x1c4], 0
nop word [eax + eax]
push 0x3f1
lea eax, [ebp - 0x5ef0]
mov dword [ebp - 0x5ab4], 0
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x7f8]
push 0x3f1
push 0
push eax
call fcn.006e6ec0
imul esi, dword [ebx + 0x1c4], 0x3f0
add esp, 0xc
mov ecx, 0xfc
add esi, edi
lea edi, [ebp - 0x5ef0]
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1c8], 0
nop dword [eax]
lea eax, [ebp - 0x5ab4]
push eax
lea eax, [ebp - 0x7f8]
push eax
push 0x3f0
lea eax, [ebp - 0x5ef0]
push eax
lea ecx, [ebx + 0xd0]
call fcn.004a1d10
movzx esi, ax
mov eax, 0xef00
cmp si, ax
je 0x437e66
push 0x3e8
call dword [0x7405ac]
inc dword [ebx + 0x1c8]
cmp dword [ebx + 0x1c8], 2
jb 0x437ce0
mov ebx, dword [0x740748]
push 7
push 0
push 0x48d
push dword [0x8b320c]
call ebx
mov edx, 0x67f
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x437d61
mov ecx, dword [ecx]
push esi
push ecx
lea eax, [ebp - 0x2a0]
push eax
call dword [0x74074c]
mov eax, dword [ebp - 0x5a9c]
add esp, 0xc
cmp eax, 8
jb 0x437d91
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
xor eax, eax
mov dword [ebp - 0x5a9c], 7
push eax
mov word [ebp - 0x5ab0], ax
lea eax, [ebp - 0x2a0]
push eax
push 0x48c
push dword [0x8b320c]
mov dword [ebp - 0x5aa0], 0
call ebx
push 0
lea eax, [ebp - 0x2a0]
push eax
push 0x472
push dword [0x8b27bc]
call ebx
push 0
push 0x783858
lea eax, [ebp - 0x2a0]
push eax
push dword [0x8b27bc]
call dword [0x740754]
mov edx, 0x4bf
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437e0b
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x437e39
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4bf
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x437e51
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
jmp 0x4375f5
cmp dword [ebp - 0x5ab4], 0x3f0
jne 0x437aff
imul edi, dword [ebx + 0x1c4], 0x3f0
lea esi, [ebp - 0x7f8]
mov eax, dword [ebp - 0x5abc]
mov ecx, 0xfc
add edi, eax
rep movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x1c4]
cmp dword [ebx + 0x1c4], 0xd
jae 0x43806a
mov edi, dword [ebp - 0x5ab8]
jmp 0x437c80
push 0x3265
lea eax, [ebp - 0x5a98]
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebx + 0x2c00]
push 0x3200
push eax
lea eax, [ebp - 0x5a98]
push eax
call fcn.006e6940
lea ecx, [ebx + 0x6200]
add esp, 0xc
lea edx, [ebp - 0x2898]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x437ef2
mov esi, dword [ebp - 0x5ac0]
lea eax, [ebp - 0x5a98]
push 0x3265
push eax
push esi
call fcn.006e6940
mov cl, byte [ebp - 0x2834]
add esp, 0xc
mov dword [ebx + 0x1c4], 0
xor eax, eax
nop dword [eax]
xor cl, byte [eax + esi]
inc eax
mov dword [ebx + 0x1c4], eax
cmp eax, 0x3264
jb 0x437f30
push 0x3265
lea eax, [ebp - 0x5a98]
mov byte [ebp - 0x2834], cl
push eax
push edi
call fcn.006e6940
add esp, 0xc
mov dword [ebx + 0x1c4], 0
nop word [eax + eax]
push 0x3f1
lea eax, [ebp - 0x5ef0]
mov dword [ebp - 0x5ab4], 0
push 0
push eax
call fcn.006e6ec0
add esp, 0xc
lea eax, [ebp - 0x7f8]
push 0x3f1
push 0
push eax
call fcn.006e6ec0
imul esi, dword [ebx + 0x1c4], 0x3f0
add esp, 0xc
mov ecx, 0xfc
add esi, edi
lea edi, [ebp - 0x5ef0]
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1c8], 0
nop dword [eax]
lea eax, [ebp - 0x5ab4]
push eax
lea eax, [ebp - 0x7f8]
push eax
push 0x3f0
lea eax, [ebp - 0x5ef0]
push eax
lea ecx, [ebx + 0xd0]
call fcn.004a1d10
movzx esi, ax
mov eax, 0xef00
cmp si, ax
je 0x438021
push 0x3e8
call dword [0x7405ac]
inc dword [ebx + 0x1c8]
cmp dword [ebx + 0x1c8], 2
jb 0x437fd0
jmp 0x437d30
cmp dword [ebp - 0x5ab4], 0x3f0
jne 0x437aff
imul edi, dword [ebx + 0x1c4], 0x3f0
lea esi, [ebp - 0x7f8]
mov eax, dword [ebp - 0x5abc]
mov ecx, 0xfc
add edi, eax
rep movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x1c4]
cmp dword [ebx + 0x1c4], 0xd
jae 0x43806a
mov edi, dword [ebp - 0x5ab8]
jmp 0x437f70
movups xmm0, xmmword [ebx + 0x198]
mov dword [ebp - 0x5ab4], 0x3330
movups xmmword [eax + 0x3330], xmm0
mov ecx, 0x8b29c8
lea edx, [ebx + 0x6b2c]
sub ecx, edx
nop
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x438090
mov ecx, 0x17
lea edi, [ebp - 0x300]
mov esi, str.Bin_files__.bin_
lea edx, [ebp - 0x300]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x8b27bc]
call fcn.005458e0
test eax, eax
je 0x438c51
mov ecx, 0x8b29c8
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4380d3
push 0
push 0
push 0
push 0
sub ecx, edx
sar ecx, 1
push ecx
push 0x8b29c8
push 0
push 0
call dword [0x74059c]
mov edi, eax
lea ecx, [edi + 1]
push ecx
call fcn.00562f31
mov edx, 0x8b29c8
mov esi, eax
add esp, 4
lea eax, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x438112
push 0
push 0
push edi
push esi
sub edx, eax
sar edx, 1
push edx
push 0x8b29c8
push 0
push 0
call dword [0x74059c]
mov byte [esi + edi], 0
cmp byte [esi], 0
jne 0x438144
xor ecx, ecx
jmp 0x438159
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438150
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x2814]
call fcn.00409260
sub esp, 8
mov byte [ebp - 0x27fc], 0x5c
lea eax, [ebp - 0x27fc]
lea ecx, [ebp - 0x2814]
push eax
call fcn.0040c560
push eax
mov dword [ebp - 0x5ac4], eax
lea ecx, [ebp - 0x2814]
push 0
lea eax, [ebp - 0x5ab0]
push eax
call fcn.0040c240
mov edi, eax
lea eax, [ebp - 0x2814]
cmp eax, edi
je 0x4381ee
mov eax, dword [ebp - 0x2800]
cmp eax, 0x10
jb 0x4381c7
inc eax
lea ecx, [ebp - 0x2814]
push eax
push dword [ebp - 0x2814]
call fcn.00404b60
push edi
lea ecx, [ebp - 0x2814]
mov dword [ebp - 0x2800], 0xf
mov dword [ebp - 0x2804], 0
mov byte [ebp - 0x2814], 0
call fcn.00408da0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5a9c]
cmp eax, 0x10
jb 0x438210
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404b60
cmp dword [ebp - 0x2800], 0x10
lea eax, [ebp - 0x2814]
push dword [ebp - 0x2804]
cmovae eax, dword [ebp - 0x2814]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.006e6940
add esp, 0xc
cmp byte [esi], 0
jne 0x438243
xor ecx, ecx
jmp 0x438251
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438248
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x282c]
call fcn.00409260
mov eax, dword [ebp - 0x5ac4]
lea ecx, [ebp - 0x282c]
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x5ab0]
push eax
call fcn.0040c240
mov edi, eax
lea eax, [ebp - 0x282c]
cmp eax, edi
je 0x4382cb
mov eax, dword [ebp - 0x2818]
cmp eax, 0x10
jb 0x4382a4
inc eax
lea ecx, [ebp - 0x282c]
push eax
push dword [ebp - 0x282c]
call fcn.00404b60
push edi
lea ecx, [ebp - 0x282c]
mov dword [ebp - 0x2818], 0xf
mov dword [ebp - 0x281c], 0
mov byte [ebp - 0x282c], 0
call fcn.00408da0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5a9c]
cmp eax, 0x10
jb 0x4382ed
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404b60
cmp dword [ebp - 0x2818], 0x10
lea eax, [ebp - 0x282c]
push dword [ebp - 0x281c]
cmovae eax, dword [ebp - 0x282c]
push eax
lea eax, [ebp - 0x400]
push eax
call fcn.006e6940
add esp, 0xc
push esi
call fcn.004b3b30
mov eax, dword [ebx + 0x1c0]
add esp, 4
test eax, eax
jne 0x438619
lea edi, [ebx + 0x5e00]
mov ecx, edi
lea eax, [ebp - 0x400]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438360
test dl, dl
je 0x43835c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438360
add eax, 2
add ecx, 2
test dl, dl
jne 0x438340
xor eax, eax
jmp 0x438365
sbb eax, eax
or eax, 1
mov esi, dword [0x740754]
test eax, eax
je 0x438407
mov edx, 0x515
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43838b
mov eax, dword [eax]
mov ebx, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4383bf
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x515
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4383d7
mov eax, dword [eax]
push 0
push 0x783858
push eax
push dword [0x8b27bc]
call esi
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x43840d
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
jmp 0x43840d
mov ebx, dword [0x740748]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438412
sub ecx, edx
lea edx, [ebp - 0x110]
lea eax, [edx + 1]
mov dword [ebp - 0x5ac4], eax
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x438430
sub edx, dword [ebp - 0x5ac4]
lea eax, [ebp - 0x110]
push edi
push ecx
push eax
push edx
lea eax, [ebp - 0x27f8]
push str._.s_.s
push eax
call fcn.00407ae0
lea eax, [ebp - 0x27f8]
push 0x783aa4
push eax
call fcn.006ee3d5
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x43852f
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43848e
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4384bc
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4384d4
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438502
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43851a
mov eax, dword [eax]
push 0
push 0x783858
push eax
push dword [0x8b27bc]
call esi
jmp 0x4375f5
mov eax, dword [ebp - 0x5ab4]
push edi
push 1
add eax, 0x10
push eax
push dword [ebp - 0x5abc]
call fcn.006ee624
push edi
mov esi, eax
call fcn.006ee6f2
add esp, 0x14
lea ecx, [ebp - 0x5ab0]
cmp esi, 1
je 0x438bc1
mov edx, 0x4c5
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438573
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4385a1
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c5
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4385b9
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4385e7
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c5
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4385ff
mov eax, dword [eax]
push 0
push 0x783858
push eax
push dword [0x8b27bc]
mov eax, dword [0x740754]
call eax
jmp 0x4375f5
cmp eax, 1
je 0x43898c
cmp eax, 3
je 0x43898c
cmp eax, 2
je 0x438639
cmp eax, 4
jne 0x438cf3
lea esi, [ebx + 0x6600]
mov ecx, esi
lea eax, [ebp - 0x400]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438667
test dl, dl
je 0x438663
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438667
add eax, 2
add ecx, 2
test dl, dl
jne 0x438647
xor eax, eax
jmp 0x43866c
sbb eax, eax
or eax, 1
test eax, eax
je 0x43871c
mov edx, 0x515
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x43868c
mov eax, dword [eax]
mov ebx, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x4386c0
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
lea ecx, [ebp - 0x5ab0]
mov dword [ebp - 0x5a9c], 7
mov dword [ebp - 0x5aa0], 0
call fcn.00404ab0
xor ecx, ecx
mov edx, 0x515
mov word [eax], cx
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push 0
push 0x783858
mov ecx, eax
call fcn.00404ab0
push eax
push dword [0x8b27bc]
call dword [0x740754]
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
jmp 0x438722
mov ebx, dword [0x740748]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438727
sub ecx, edx
lea edx, [ebp - 0x110]
lea edi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x438740
push esi
push ecx
lea eax, [ebp - 0x110]
sub edx, edi
push eax
push edx
lea eax, [ebp - 0x17f8]
push str._.s_.s
push eax
call fcn.00407ae0
lea eax, [ebp - 0x17f8]
push 0x783aa4
push eax
call fcn.006ee3d5
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x438820
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push edi
mov ecx, eax
call fcn.00404ab0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push edi
mov ecx, eax
call fcn.00404ab0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push 0x40
push 0x783858
mov ecx, eax
call fcn.00404ab0
push eax
push dword [0x8b27bc]
mov eax, dword [0x740754]
call eax
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
jmp 0x438d3f
mov eax, dword [ebp - 0x5ab4]
push edi
push 1
add eax, 0x10
push eax
push dword [ebp - 0x5abc]
call fcn.006ee624
push edi
mov esi, eax
call fcn.006ee6f2
add esp, 0x14
cmp esi, 1
je 0x4388ec
mov edx, 0x4c5
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
mov edx, 0x4c5
lea ecx, [ebp - 0x5ae0]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
lea ecx, [ebp - 0x5ae0]
call fcn.00404ac0
mov edx, 0x4c5
lea ecx, [ebp - 0x5af8]
call fcn.00405cc0
push 0
push 0x783858
mov ecx, eax
call fcn.00404ab0
push eax
push dword [0x8b27bc]
mov eax, dword [0x740754]
call eax
lea ecx, [ebp - 0x5af8]
call fcn.00404ac0
jmp 0x438cf9
mov edx, 0x4c7
lea ecx, [ebp - 0x5af8]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
lea ecx, [ebp - 0x5af8]
call fcn.00404ac0
mov edx, 0x4c6
lea ecx, [ebp - 0x5ae0]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
lea ecx, [ebp - 0x5ae0]
call fcn.00404ac0
mov edx, 0x4c7
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push 0
push 0x783858
mov ecx, eax
call fcn.00404ab0
push eax
push dword [0x8b27bc]
mov eax, dword [0x740754]
call eax
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
jmp 0x438cf9
lea edi, [ebx + 0x6200]
mov ecx, edi
lea eax, [ebp - 0x400]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4389c0
test dl, dl
je 0x4389bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4389c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4389a0
xor eax, eax
jmp 0x4389c5
sbb eax, eax
or eax, 1
mov esi, dword [0x740754]
test eax, eax
je 0x438a67
mov edx, 0x515
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x4389eb
mov eax, dword [eax]
mov ebx, dword [0x740748]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438a1f
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x515
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438a37
mov eax, dword [eax]
push 0
push 0x783858
push eax
push dword [0x8b27bc]
call esi
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438a6d
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
jmp 0x438a6d
mov ebx, dword [0x740748]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438a72
sub ecx, edx
lea edx, [ebp - 0x110]
lea eax, [edx + 1]
mov dword [ebp - 0x5ac4], eax
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x438a90
sub edx, dword [ebp - 0x5ac4]
lea eax, [ebp - 0x110]
push edi
push ecx
push eax
push edx
lea eax, [ebp - 0x17f8]
push str._.s_.s
push eax
call fcn.00407ae0
lea eax, [ebp - 0x17f8]
push 0x783aa4
push eax
call fcn.006ee3d5
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x438b8f
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438aee
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438b1c
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438b34
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438b62
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x454
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438b7a
mov eax, dword [eax]
push 0x40
push 0x783858
push eax
push dword [0x8b27bc]
call esi
jmp 0x4375f5
mov eax, dword [ebp - 0x5ab4]
push edi
push 1
add eax, 0x10
push eax
push dword [ebp - 0x5abc]
call fcn.006ee624
push edi
mov esi, eax
call fcn.006ee6f2
add esp, 0x14
lea ecx, [ebp - 0x5ab0]
cmp esi, 1
jne 0x438561
mov edx, 0x4c7
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438bd3
mov eax, dword [eax]
push 0
push eax
push 0x48c
push dword [0x8b320c]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438c01
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c6
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
cmp dword [eax + 0x14], 8
jb 0x438c19
mov eax, dword [eax]
push 0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
mov eax, dword [ebp - 0x5a9c]
cmp eax, 8
jb 0x438c47
inc eax
lea ecx, [ebp - 0x5ab0]
push eax
push dword [ebp - 0x5ab0]
call fcn.00404a50
mov edx, 0x4c7
jmp 0x4385ec
mov edx, 0x4e0
lea ecx, [ebp - 0x5af8]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
mov ebx, dword [0x740748]
push eax
push 0x48c
push dword [0x8b320c]
call ebx
lea ecx, [ebp - 0x5af8]
call fcn.00404ac0
mov edx, 0x4e0
lea ecx, [ebp - 0x5ae0]
call fcn.00405cc0
push 0
mov ecx, eax
call fcn.00404ab0
push eax
push 0x472
push dword [0x8b27bc]
call ebx
lea ecx, [ebp - 0x5ae0]
call fcn.00404ac0
mov edx, 0x4e0
lea ecx, [ebp - 0x5ab0]
call fcn.00405cc0
push 0
push 0x783858
mov ecx, eax
call fcn.00404ab0
push eax
push dword [0x8b27bc]
call dword [0x740754]
lea ecx, [ebp - 0x5ab0]
call fcn.00404ac0
jmp 0x438cf9
mov ebx, dword [0x740748]
push dword [ebp - 0x5ab8]
call fcn.004b3b30
add esp, 4
push dword [ebp - 0x5abc]
call fcn.004b3b30
add esp, 4
push dword [ebp - 0x5ac0]
call fcn.004b3b30
mov ecx, dword [ebp - 0x5ac8]
add esp, 4
call fcn.004a1400
push 7
push 0
push 0x48d
push dword [0x8b320c]
call ebx
lea ecx, [ebp - 0x282c]
call fcn.00404b00
lea ecx, [ebp - 0x2814]
call fcn.00404b00
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006a7b19
mov esp, ebp
pop ebp
ret