Function at 0x501acbf
Capabilities:
Encode data using base64

Disassembly:
push ebp
lea ebp, [esp - 0x3fd0]
mov eax, 0x4050
call fcn.050704b0
mov eax, dword [0x509ddfc]
xor eax, ebp
mov dword [ebp + 0x3fcc], eax
push ebx
push esi
push edi
mov edi, 0x100
push edi
mov esi, ecx
push edi
push dword [esi + 0x3e98]
lea ecx, [ebp - 0x70]
call fcn.050684ba
mov eax, dword [esi + 0x2c]
mov ecx, 0x43434c52
cmp eax, ecx
mov ebx, 0x37434c52
mov edx, 0x47524159
jg 0x501b62e
je 0x501b551
cmp eax, ebx
jg 0x501b1b1
je 0x501b0d4
cmp eax, 0x32434c52
je 0x501b01a
cmp eax, 0x33434c52
je 0x501baab
cmp eax, 0x34434c52
je 0x501af17
cmp eax, 0x35434c52
je 0x501ae3a
cmp eax, 0x36434c52
jne 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x26
mov dword [esi + 0x124], 0x17
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 6
jl 0x501ad89
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501ad7c
mov ebx, dword [esi + 0x50]
jmp 0x501add5
cmp dword [ebx + 0x74], 2
jne 0x501add9
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501adb6
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x7c], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x80], 6
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x80]
jne 0x501ae02
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x7c]
jne 0x501adf6
push 6
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501ae2b
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x25
mov dword [esi + 0x124], 0x16
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 5
jl 0x501ae66
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501ae59
mov ebx, dword [esi + 0x50]
jmp 0x501aeb2
cmp dword [ebx + 0x74], 2
jne 0x501aeb6
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501ae93
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 5
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501aedf
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501aed3
push 5
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501af08
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x24
mov dword [esi + 0x124], 0x15
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx ebx, ax
push ebx
push 0
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 1
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 2
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 3
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501af36
mov ebx, dword [esi + 0x50]
jmp 0x501afad
cmp dword [ebx + 0x74], 2
jne 0x501afb1
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501af8e
mov ebx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
lea edx, [esi + 0x58c]
shl ebx, 2
mov ecx, edx
add eax, 8
mov dword [ebp - 0x7c], edi
mov edi, dword [eax - 8]
mov dword [ecx - 0x400], edi
mov edi, dword [eax - 4]
mov dword [ecx], edi
mov edi, dword [eax]
mov dword [ecx + 0x400], edi
mov edi, dword [eax + 4]
mov dword [ecx + 0x800], edi
add ecx, 4
add eax, ebx
dec dword [ebp - 0x7c]
jne 0x501afc8
lea eax, [esi + 0x18c]
mov dword [esi + 0x128], eax
lea eax, [esi + 0x98c]
mov dword [esi + 0x130], eax
lea eax, [esi + 0xd8c]
mov dword [esi + 0x134], eax
jmp 0x501bbcc
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x22
mov dword [esi + 0x124], 0x13
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx ebx, ax
push ebx
push 0
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 1
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b039
mov ebx, dword [esi + 0x50]
jmp 0x501b094
cmp dword [ebx + 0x74], 2
jne 0x501b098
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b075
mov ebx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
lea edx, [esi + 0x58c]
shl ebx, 2
mov ecx, edx
mov dword [ebp - 0x7c], edi
mov edi, dword [eax]
mov dword [ecx - 0x400], edi
mov edi, dword [eax + 4]
mov dword [ecx], edi
add ecx, 4
add eax, ebx
dec dword [ebp - 0x7c]
jne 0x501b0ac
lea eax, [esi + 0x18c]
mov dword [esi + 0x128], eax
jmp 0x501bbcc
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x27
mov dword [esi + 0x124], 0x18
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 7
jl 0x501b100
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b0f3
mov ebx, dword [esi + 0x50]
jmp 0x501b14c
cmp dword [ebx + 0x74], 2
jne 0x501b150
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b12d
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 7
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b179
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b16d
push 7
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b1a2
jmp 0x501bbd2
cmp eax, 0x38434c52
je 0x501b474
cmp eax, 0x39434c52
je 0x501b397
cmp eax, 0x41434c52
je 0x501b2ba
cmp eax, 0x42434c52
jne 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2b
mov dword [esi + 0x124], 0x1c
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xb
jl 0x501b209
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b1fc
mov ebx, dword [esi + 0x50]
jmp 0x501b255
cmp dword [ebx + 0x74], 2
jne 0x501b259
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b236
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xb
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b282
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b276
push 0xb
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b2ab
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2a
mov dword [esi + 0x124], 0x1b
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xa
jl 0x501b2e6
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b2d9
mov ebx, dword [esi + 0x50]
jmp 0x501b332
cmp dword [ebx + 0x74], 2
jne 0x501b336
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b313
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xa
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b35f
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b353
push 0xa
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b388
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x29
mov dword [esi + 0x124], 0x1a
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 9
jl 0x501b3c3
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b3b6
mov ebx, dword [esi + 0x50]
jmp 0x501b40f
cmp dword [ebx + 0x74], 2
jne 0x501b413
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b3f0
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 9
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b43c
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b430
push 9
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b465
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x28
mov dword [esi + 0x124], 0x19
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 8
jl 0x501b4a0
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b493
mov ebx, dword [esi + 0x50]
jmp 0x501b4ec
cmp dword [ebx + 0x74], 2
jne 0x501b4f0
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b4cd
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 8
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b519
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b50d
push 8
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b542
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2c
mov dword [esi + 0x124], 0x1d
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xc
jl 0x501b57d
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b570
mov ebx, dword [esi + 0x50]
jmp 0x501b5c9
cmp dword [ebx + 0x74], 2
jne 0x501b5cd
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b5aa
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xc
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b5f6
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b5ea
push 0xc
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b61f
jmp 0x501bbd2
cmp eax, edx
jg 0x501ba87
je 0x501b9e0
cmp eax, 0x434d594b
je 0x501b8ff
cmp eax, 0x44434c52
je 0x501b822
cmp eax, 0x45434c52
je 0x501b745
cmp eax, 0x46434c52
jne 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2f
mov dword [esi + 0x124], 0x20
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xf
jl 0x501b694
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b687
mov ebx, dword [esi + 0x50]
jmp 0x501b6e0
cmp dword [ebx + 0x74], 2
jne 0x501b6e4
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b6c1
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xf
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b70d
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b701
push 0xf
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b736
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2e
mov dword [esi + 0x124], 0x1f
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xe
jl 0x501b771
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b764
mov ebx, dword [esi + 0x50]
jmp 0x501b7bd
cmp dword [ebx + 0x74], 2
jne 0x501b7c1
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b79e
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xe
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b7ea
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b7de
push 0xe
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b813
jmp 0x501bbd2
and dword [ebp - 0x78], 0
mov dword [esi + 0xbc], 0x2d
mov dword [esi + 0x124], 0x1e
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx eax, ax
mov dword [ebp - 0x7c], eax
xor ebx, ebx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
push ebx
push dword [ebp - 0x78]
call fcn.050685ad
inc ebx
cmp ebx, 0xd
jl 0x501b84e
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501b841
mov ebx, dword [esi + 0x50]
jmp 0x501b89a
cmp dword [ebx + 0x74], 2
jne 0x501b89e
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b87b
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
shl eax, 2
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x18c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], edi
mov eax, 0x400
mov edx, dword [ebp - 0x74]
mov ebx, ecx
mov dword [ebp - 0x7c], 0xd
mov edi, dword [ebx]
mov dword [edx], edi
add ebx, 4
add edx, eax
dec dword [ebp - 0x7c]
jne 0x501b8c7
add dword [ebp - 0x74], 4
add ecx, dword [ebp - 0x78]
dec dword [ebp - 0x80]
jne 0x501b8bb
push 0xd
lea ecx, [esi + 0x128]
lea edx, [esi + 0x18c]
pop edi
mov dword [ecx], edx
add ecx, 4
add edx, eax
dec edi
jne 0x501b8f0
jmp 0x501bbd2
and dword [ebp - 0x78], 0
and dword [ebp - 0x74], 0
mov dword [esi + 0xbc], 0x30
mov dword [esi + 0x124], 0x15
mov eax, 0x10000
sub eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x70]
shr eax, 1
movzx ebx, ax
push ebx
push 0
push dword [ebp - 0x78]
call fcn.050685ad
push ebx
push 1
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 2
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 3
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10100
jl 0x501b91b
mov ebx, dword [esi + 0x50]
jmp 0x501b997
cmp dword [ebx + 0x74], 2
jne 0x501b99b
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501b978
mov ebx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
lea edx, [esi + 0x58c]
shl ebx, 2
mov ecx, edx
add eax, 8
mov dword [ebp - 0x7c], edi
mov edi, dword [eax - 8]
mov dword [ecx - 0x400], edi
mov edi, dword [eax - 4]
mov dword [ecx], edi
mov edi, dword [eax]
mov dword [ecx + 0x400], edi
mov edi, dword [eax + 4]
mov dword [ecx + 0x800], edi
add ecx, 4
add eax, ebx
dec dword [ebp - 0x7c]
jne 0x501b9b2
jmp 0x501aff1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
neg al
mov dword [esi + 0xbc], 0x21
mov dword [esi + 0x124], 0x12
sbb eax, eax
and dword [ebp - 0x78], 0
and eax, 3
add eax, 0x32
xor ebx, ebx
mov dword [esi + 0x54], eax
inc ebx
mov eax, ebx
shr eax, 1
push eax
push 0
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
inc dword [ebp - 0x78]
add ebx, 0x101
cmp ebx, 0x10101
jl 0x501ba0f
mov ebx, dword [esi + 0x50]
jmp 0x501ba56
cmp dword [ebx + 0x74], 2
jne 0x501ba5a
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501ba37
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
lea ecx, [esi + 0x18c]
shl edx, 2
mov ebx, ecx
mov dword [ebp - 0x7c], edi
mov edi, dword [eax]
mov dword [ebx], edi
add ebx, 4
add eax, edx
dec dword [ebp - 0x7c]
jne 0x501ba6e
mov dword [esi + 0x128], ecx
jmp 0x501bbd2
cmp eax, 0x4c616220
je 0x501baab
cmp eax, 0x52474220
je 0x501baab
cmp eax, 0x58595a20
je 0x501bb3a
cmp eax, 0x59436272
jne 0x501bbd2
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
neg al
mov dword [esi + 0xbc], 0x23
mov dword [esi + 0x124], 0x14
mov dword [ebp - 0x74], 1
sbb eax, eax
and eax, 3
add eax, 0x33
and dword [ebp - 0x78], 0
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x74]
shr eax, 1
movzx ebx, ax
push ebx
push 0
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
cmp dword [esi + 0x2c], 0x4c616220
jne 0x501bb06
mov eax, dword [ebp - 0x78]
shl eax, 7
movzx ebx, ax
push ebx
push 1
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
push ebx
push 2
push dword [ebp - 0x78]
lea ecx, [ebp - 0x70]
call fcn.050685ad
add dword [ebp - 0x74], 0x101
inc dword [ebp - 0x78]
cmp dword [ebp - 0x74], 0x10101
jl 0x501bade
mov ebx, dword [esi + 0x50]
jmp 0x501bb79
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
neg al
mov dword [esi + 0xbc], 0x31
sbb eax, eax
and eax, 3
add eax, 0x34
mov dword [esi + 0x54], eax
jmp 0x501bbd2
cmp dword [ebx + 0x74], 2
jne 0x501bb7d
lea eax, [ebx + 0xc]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call dword [0x509ffa8]
mov ebx, dword [ebx + 0x78]
add esp, 0x10
test ebx, ebx
jne 0x501bb5a
mov ebx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x70]
lea edx, [esi + 0x58c]
shl ebx, 2
mov ecx, edx
add eax, 8
mov dword [ebp - 0x7c], edi
mov edi, dword [eax - 8]
mov dword [ecx - 0x400], edi
mov edi, dword [eax - 4]
mov dword [ecx], edi
mov edi, dword [eax]
mov dword [ecx + 0x400], edi
add ecx, 4
add eax, ebx
dec dword [ebp - 0x7c]
jne 0x501bb94
lea eax, [esi + 0x18c]
mov dword [esi + 0x128], eax
lea eax, [esi + 0x98c]
mov dword [esi + 0x130], eax
mov dword [esi + 0x12c], edx
mov eax, dword [esi + 0x50]
xor edx, edx
mov dword [esi + 0x3d8c], edx
mov dword [esi + 0x3d90], edx
mov dword [esi + 0x3d94], edx
jmp 0x501bc38
cmp dword [esi + 0x3d8c], edx
jne 0x501bbfc
lea ecx, [eax + 8]
mov dword [esi + 0x3d8c], ecx
cmp dword [esi + 0x3d90], edx
jne 0x501bc0d
lea ecx, [eax + 8]
mov dword [esi + 0x3d90], ecx
cmp dword [esi + 0x3d94], edx
jne 0x501bc24
cmp dword [eax + 0x74], 2
je 0x501bc24
lea ecx, [eax + 8]
mov dword [esi + 0x3d94], ecx
mov ecx, dword [eax + 0x78]
cmp ecx, edx
je 0x501bc33
lea edi, [ecx + 8]
mov dword [eax + 8], edi
jmp 0x501bc36
mov dword [eax + 8], edx
mov eax, ecx
cmp eax, edx
jne 0x501bbeb
mov eax, dword [esi + 0x30]
mov ecx, 0x43434c52
cmp eax, ecx
jg 0x501bd3e
je 0x501bd2f
mov ecx, 0x37434c52
cmp eax, ecx
jg 0x501bcd3
je 0x501bcc4
cmp eax, 0x32434c52
je 0x501bcb5
cmp eax, 0x33434c52
je 0x501bdf0
cmp eax, 0x34434c52
je 0x501bca6
cmp eax, 0x35434c52
je 0x501bc97
cmp eax, 0x36434c52
jne 0x501bdfa
mov dword [esi + 0x3e00], 0x41
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x40
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x3f
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x3d
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x42
jmp 0x501bdfa
cmp eax, 0x38434c52
je 0x501bd20
cmp eax, 0x39434c52
je 0x501bd11
cmp eax, 0x41434c52
je 0x501bd02
cmp eax, 0x42434c52
jne 0x501bdfa
mov dword [esi + 0x3e00], 0x46
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x45
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x44
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x43
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x47
jmp 0x501bdfa
mov ecx, 0x47524159
cmp eax, ecx
jg 0x501bdb2
je 0x501bd9c
cmp eax, 0x434d594b
je 0x501bd90
cmp eax, 0x44434c52
je 0x501bd84
cmp eax, 0x45434c52
je 0x501bd78
cmp eax, 0x46434c52
jne 0x501bdfa
mov dword [esi + 0x3e00], 0x4a
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x49
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x48
jmp 0x501bdfa
mov dword [esi + 0x3e00], 0x4b
jmp 0x501bdfa
mov dword [esi + 0x3d98], 0x4d
mov dword [esi + 0x3e00], 0x3c
jmp 0x501bdfa
cmp eax, 0x4c616220
je 0x501bdf0
cmp eax, 0x52474220
je 0x501bde6
cmp eax, 0x58595a20
je 0x501bdd0
cmp eax, 0x59436272
jne 0x501bdfa
jmp 0x501bdf0
mov dword [esi + 0x3d98], 0x4f
mov dword [esi + 0x3e00], 0x4c
jmp 0x501bdfa
mov dword [esi + 0x3d98], 0x4e
mov dword [esi + 0x3e00], 0x3e
mov ecx, dword [ebp + 0x3fcc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.05070186
add ebp, 0x3fd0
leave
ret