Function at 0x10015607
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x230
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x108], edx
mov dword [esp + 0x7c], ecx
and dword [esp + 0x11c], 0
mov dword [esp + 0x110], 0xc2538b
mov dword [esp + 0x114], 0x60e2af
mov dword [esp + 0x118], 0x2e5bf7
mov dword [esp + 0x68], 0xf23759
shl dword [esp + 0x68], 5
shr dword [esp + 0x68], 0xd
shr dword [esp + 0x68], 8
xor dword [esp + 0x68], 0xf2
mov dword [esp + 0xec], 0x3f4a39
xor dword [esp + 0xec], 0x3ff0085e
xor dword [esp + 0xec], 0x3fc59712
mov dword [esp + 0x48], 0x3fb7e5
xor dword [esp + 0x48], 0xa3e506af
imul eax, dword [esp + 0x48], 0x4e
mov dword [esp + 0x48], eax
mov esi, 0x993c65
shl dword [esp + 0x48], 0xa
xor dword [esp + 0x48], 0x881ddea5
mov dword [esp + 0x98], 0xffdfc9
xor dword [esp + 0x98], 0x17f71e97
add dword [esp + 0x98], 0xffffd49f
xor dword [esp + 0x98], 0x170c3921
mov dword [esp + 0xf4], 0xeb3dcf
mov eax, dword [esp + 0xf4]
xor edx, edx
push 0x76
pop edi
div edi
push 0x66
mov dword [esp + 0xf8], eax
xor edx, edx
xor dword [esp + 0xf8], 0x2bd6d
mov dword [esp + 0x8c], 0xf4bc36
mov eax, dword [esp + 0x8c]
pop edi
div edi
push 0x11
mov dword [esp + 0x8c], eax
xor edx, edx
xor dword [esp + 0x8c], 0x1d32feab
xor dword [esp + 0x8c], 0x1d32cdf2
mov dword [esp + 0xcc], 0x93cf9b
add dword [esp + 0xcc], 0xffff6c93
xor dword [esp + 0xcc], 0x95f9af
mov dword [esp + 0x100], 0xd064bf
add dword [esp + 0x100], 0x9145
xor dword [esp + 0x100], 0xd22f39
mov dword [esp + 0xa0], 0xff9f9f
shl dword [esp + 0xa0], 9
mov eax, dword [esp + 0xa0]
pop edi
div edi
push 0x15
mov dword [esp + 0xa0], eax
xor edx, edx
xor dword [esp + 0xa0], 0xf0d9b15
mov dword [esp + 0x28], 0xf650b1
shr dword [esp + 0x28], 8
mov eax, dword [esp + 0x28]
pop edi
div edi
mov dword [esp + 0x24], eax
imul eax, dword [esp + 0x24], 0x76
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x9f928
mov dword [esp + 0x34], 0x240801
imul eax, dword [esp + 0x34], 0x38
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0xf2229bfc
xor dword [esp + 0x34], 0x41757d89
xor dword [esp + 0x34], 0xb4bf9734
xor edx, edx
mov dword [esp + 0xa4], 0xa66419
mov eax, dword [esp + 0xa4]
push 0x73
pop ebx
div ebx
xor edx, edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
push 0x2e
pop edi
div edi
xor edx, edx
mov dword [esp + 0xa4], eax
xor dword [esp + 0xa4], 0x6417d
mov dword [esp + 0x2c], 0xc4b041
add dword [esp + 0x2c], 0x3717
add dword [esp + 0x2c], 0x2cdd
shl dword [esp + 0x2c], 3
xor dword [esp + 0x2c], 0x62591f4
mov dword [esp + 0xb8], 0x22c22f
shr dword [esp + 0xb8], 8
add dword [esp + 0xb8], 0x272
xor dword [esp + 0xb8], 0xa820
mov dword [esp + 0x80], 0xe324bc
xor dword [esp + 0x80], 0x7e27ebf3
add dword [esp + 0x80], 0x73eb
xor dword [esp + 0x80], 0x7eca65f6
mov dword [esp + 0x28], 0x22def1
shl dword [esp + 0x28], 2
shl dword [esp + 0x28], 0xd
mov eax, dword [esp + 0x28]
push 0x42
pop edi
div edi
xor edx, edx
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x1ba9951
mov dword [esp + 0xf8], 0xd28cea
mov eax, dword [esp + 0xf8]
push 0x3f
pop edi
div edi
xor edx, edx
mov dword [esp + 0xf8], eax
xor dword [esp + 0xf8], 0x1863f
mov dword [esp + 0x30], 0xd0bf04
imul eax, dword [esp + 0x30], 0x4a
push 0x71
pop edi
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0xd8124de7
add dword [esp + 0x30], 0x96e3
xor dword [esp + 0x30], 0xe44606ef
mov dword [esp + 0xa0], 0xe6e24f
or dword [esp + 0xa0], 0x21e34a51
imul eax, dword [esp + 0xa0], 0x74
mov dword [esp + 0xa0], eax
xor dword [esp + 0xa0], 0x5d183e6e
mov dword [esp + 0x78], 0x625691
mov eax, dword [esp + 0x78]
div edi
xor edx, edx
mov dword [esp + 0x78], eax
or dword [esp + 0x78], 0x2811a268
mov eax, dword [esp + 0x78]
div edi
mov dword [esp + 0x78], eax
xor dword [esp + 0x78], 0x5ab47f
mov dword [esp + 0x38], 0x247734
shl dword [esp + 0x38], 0x10
add dword [esp + 0x38], 0x1f3f
add dword [esp + 0x38], 0xf1e8
xor dword [esp + 0x38], 0x77344e2d
mov dword [esp + 0x58], 0x606c5c
add dword [esp + 0x58], 0x153f
or dword [esp + 0x58], 0xe094db12
imul eax, dword [esp + 0x58], 0x16
mov dword [esp + 0x58], eax
xor dword [esp + 0x58], 0x550f5292
mov dword [esp + 0x60], 0x88b11f
shl dword [esp + 0x60], 3
xor dword [esp + 0x60], 0x11c3e5c8
imul eax, dword [esp + 0x60], 0x16
mov dword [esp + 0x60], eax
xor edx, edx
xor dword [esp + 0x60], 0xd981e6e5
mov dword [esp + 0x40], 0xadc695
mov eax, dword [esp + 0x40]
push 0x32
pop edi
div edi
push 0x1a
mov dword [esp + 0x44], eax
xor edx, edx
imul eax, dword [esp + 0x44], 0x7c
pop edi
push 0x5c
mov dword [esp + 0x44], eax
imul eax, dword [esp + 0x44], 0x70
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0xbc86ec39
mov dword [esp + 0x90], 0xa77944
imul eax, dword [esp + 0x90], 0x2d
mov dword [esp + 0x90], eax
add dword [esp + 0x90], 0xffff1e61
xor dword [esp + 0x90], 0x1d6d43a8
mov dword [esp + 0x14], 0x80e392
mov eax, dword [esp + 0x14]
div edi
xor edx, edx
mov dword [esp + 0x14], eax
or dword [esp + 0x14], 0xdd7fffbe
xor dword [esp + 0x14], 0xdd7b1543
mov dword [esp + 0x88], 0x668a
or dword [esp + 0x88], 0x5cd0fc7b
mov eax, dword [esp + 0x88]
pop edi
div edi
push 0x60
mov dword [esp + 0x88], eax
xor dword [esp + 0x88], 0x10d65e0
mov dword [esp + 0x98], 0x409ce0
imul eax, dword [esp + 0x98], 0x54
mov dword [esp + 0x98], eax
add dword [esp + 0x98], 0xffff3e14
xor dword [esp + 0x98], 0x153e5035
mov dword [esp + 0x104], 0xae9ac6
shl dword [esp + 0x104], 7
xor dword [esp + 0x104], 0x574b1adf
mov dword [esp + 0xec], 0x1b8a7e
shr dword [esp + 0xec], 0xc
xor dword [esp + 0xec], 0xeff48
mov dword [esp + 0x20], 0x55e177
imul eax, dword [esp + 0x20], 0x75
mov dword [esp + 0x20], eax
shr dword [esp + 0x20], 0xf
shl dword [esp + 0x20], 0xc
xor dword [esp + 0x20], 0x4e82b32
mov dword [esp + 0x18], 0x479171
shr dword [esp + 0x18], 0xe
add dword [esp + 0x18], 0x326
add dword [esp + 0x18], 0xe8e
xor dword [esp + 0x18], 0x2ec3c
mov dword [esp + 0xc4], 0xc84476
shr dword [esp + 0xc4], 2
xor dword [esp + 0xc4], 0x3454dc
mov dword [esp + 0x1c], 0xb0c34d
shl dword [esp + 0x1c], 6
shr dword [esp + 0x1c], 9
imul eax, dword [esp + 0x1c], 0x33
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x46ade0c
mov dword [esp + 0xd4], 0xdc826e
shr dword [esp + 0xd4], 0x10
xor dword [esp + 0xd4], 0xff03
mov dword [esp + 0xb4], 0x4ae328
add dword [esp + 0xb4], 0xe072
imul eax, dword [esp + 0xb4], 0x67
mov dword [esp + 0xb4], eax
xor dword [esp + 0xb4], 0x1e7baa70
mov dword [esp + 0x24], 0x142a1c
xor dword [esp + 0x24], 0x16e817a2
xor edx, edx
mov eax, dword [esp + 0x24]
pop edi
div edi
xor edx, edx
mov dword [esp + 0x20], eax
or dword [esp + 0x20], 0x89f21a0f
xor dword [esp + 0x20], 0x89fbb568
mov dword [esp + 0xf0], 0xe4db1b
add dword [esp + 0xf0], 0xffffc588
xor dword [esp + 0xf0], 0xe07930
mov dword [esp + 0xd8], 0x17da58
add dword [esp + 0xd8], 0xffff2aca
xor dword [esp + 0xd8], 0x1b9a94
mov dword [esp + 0x70], 0xe53a1
xor dword [esp + 0x70], 0x33fb6f41
mov eax, dword [esp + 0x70]
push 0x45
pop edi
div edi
xor edx, edx
mov dword [esp + 0x70], eax
shr dword [esp + 0x70], 5
xor dword [esp + 0x70], 0xf9734
mov dword [esp + 0x90], 0x704e49
or dword [esp + 0x90], 0xd157d1b6
mov eax, dword [esp + 0x90]
div ebx
push 9
mov dword [esp + 0x94], eax
xor edx, edx
xor dword [esp + 0x94], 0x1dd5d16
mov dword [esp + 0xe4], 0xf03826
mov eax, dword [esp + 0xe4]
pop ebx
div ebx
push 0x49
mov dword [esp + 0xe4], eax
xor edx, edx
xor dword [esp + 0xe4], 0x138040
mov dword [esp + 0xac], 0x9d146a
add dword [esp + 0xac], 0x775e
add dword [esp + 0xac], 0xa496
xor dword [esp + 0xac], 0x93f25e
mov dword [esp + 0x54], 0xc05bc0
add dword [esp + 0x54], 0x4ce4
mov eax, dword [esp + 0x54]
pop edi
div edi
push 0xc
mov dword [esp + 0x54], eax
xor edx, edx
imul eax, dword [esp + 0x54], 0x5b
pop edi
push 0x43
mov dword [esp + 0x54], eax
xor dword [esp + 0x54], 0xf1ced8
mov dword [esp + 0x40], 0x86e75c
add dword [esp + 0x40], 0xffff2ff3
mov eax, dword [esp + 0x40]
div edi
xor edx, edx
mov dword [esp + 0x40], eax
add dword [esp + 0x40], 0xffff7f22
xor dword [esp + 0x40], 0xe48b
mov dword [esp + 0xc8], 0xa0fa3c
add dword [esp + 0xc8], 0xffff0ea8
xor dword [esp + 0xc8], 0xa6b097
mov dword [esp + 0xb0], 0xa54255
shr dword [esp + 0xb0], 0x10
add dword [esp + 0xb0], 0x7082
xor dword [esp + 0xb0], 0x6898c
mov dword [esp + 0x58], 0x3b36b8
imul eax, dword [esp + 0x58], 0x52
pop edi
mov dword [esp + 0x54], eax
xor dword [esp + 0x54], 0x4758664d
shl dword [esp + 0x54], 9
xor dword [esp + 0x54], 0x5fc99e2d
mov dword [esp + 0x4c], 0xdf5554
mov eax, dword [esp + 0x4c]
div edi
mov dword [esp + 0x4c], eax
xor dword [esp + 0x4c], 0x9e562796
xor edx, edx
shr dword [esp + 0x4c], 2
xor dword [esp + 0x4c], 0x2791cfeb
mov dword [esp + 0x44], 0xf94bd7
mov eax, dword [esp + 0x44]
push 0x58
pop edi
div edi
push 0x2a
mov dword [esp + 0x48], eax
xor edx, edx
xor dword [esp + 0x48], 0xe9dee8f4
add dword [esp + 0x48], 0x2f07
xor dword [esp + 0x48], 0xe9d99f98
mov dword [esp + 0xb8], 0x8798d2
imul eax, dword [esp + 0xb8], 0x35
pop edi
push 0x4e
mov ebp, dword [esp + 0x10c]
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0xb8], eax
add dword [esp + 0xb8], 0xd72b
xor dword [esp + 0xb8], 0x1c15f6b5
mov dword [esp + 0xe8], 0xe757c6
xor dword [esp + 0xe8], 0xac3b3b27
xor dword [esp + 0xe8], 0xacd93010
mov dword [esp + 0xe0], 0x1af757
shl dword [esp + 0xe0], 0xc
xor dword [esp + 0xe0], 0xaf72f9ff
mov dword [esp + 0xd8], 0x20e2be
mov eax, dword [esp + 0xd8]
div edi
xor edx, edx
mov dword [esp + 0xd8], eax
xor dword [esp + 0xd8], 0xf496e
mov dword [esp + 0xd0], 0x71c8b3
add dword [esp + 0xd0], 0xffff6396
xor dword [esp + 0xd0], 0x7f6d7c
mov dword [esp + 0x68], 0xbc9eb8
add dword [esp + 0x68], 0xffff832f
add dword [esp + 0x68], 0xfffff5a6
mov eax, dword [esp + 0x68]
pop edi
div edi
push 0x55
mov dword [esp + 0x68], eax
xor edx, edx
xor dword [esp + 0x68], 0xab393
mov dword [esp + 0xc0], 0x802bcc
mov eax, dword [esp + 0xc0]
pop edi
div edi
mov edi, dword [esp + 0x108]
mov dword [esp + 0xbc], eax
shr dword [esp + 0xbc], 6
xor dword [esp + 0xbc], 0xdfbf8
mov dword [esp + 0x5c], 0x3c0d9
shl dword [esp + 0x5c], 3
imul eax, dword [esp + 0x5c], 0x3d
mov dword [esp + 0x5c], eax
shr dword [esp + 0x5c], 8
xor dword [esp + 0x5c], 0xb4e3d
mov dword [esp + 0x74], 0xbdeeb2
or dword [esp + 0x74], 0x4df2dc4c
shl dword [esp + 0x74], 1
shr dword [esp + 0x74], 4
xor dword [esp + 0x74], 0x9b1e366
mov dword [esp + 0x6c], 0xc0c907
xor dword [esp + 0x6c], 0x33086c86
shl dword [esp + 0x6c], 0xd
add dword [esp + 0x6c], 0xffff38e0
xor dword [esp + 0x6c], 0x14ac4f7f
mov eax, 0xdca11d
cmp esi, 0x42e4efc
jg 0x10016203
je 0x1001636c
cmp esi, 0x276c3a
je 0x100161d4
cmp esi, 0x993c65
je 0x100161ca
cmp esi, 0xd3ecf6
je 0x1001613f
cmp esi, eax
je 0x100160a4
cmp esi, 0x30cf5dd
jne 0x1001634e
mov eax, dword [esp + 0x98]
xor edx, edx
mov eax, dword [esp + 0x48]
inc edx
mov eax, dword [esp + 0xec]
push ecx
push ecx
push 8
call fcn.1001e80b
mov edi, eax
lea eax, [esp + 0x12c]
push eax
push 9
push dword [esp + 0xdc]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x10c]
push edi
call fcn.10010a38
mov esi, 0x7b2ed8e
add esp, 0x1c
mov ecx, dword [esp + 0x7c]
jmp 0x10016003
push dword [esp + 0xb0]
lea ebx, [edi + ebp]
mov edx, 0x1000113c
push dword [esp + 0xd4]
mov dword [esp + 0x114], ebx
push dword [esp + 0x20]
mov ecx, dword [esp + 0xcc]
call fcn.1001fbb8
push dword [esp + 0x9c]
mov esi, eax
lea ecx, [esp + 0x130]
sub ebx, ebp
lea eax, [esp + 0x150]
push ebx
push eax
lea eax, [esp + 0x1d8]
push eax
push dword [esp + 0x8c]
push dword [esp + 0xf8]
push dword [esp + 0x114]
mov edx, dword [esp + 0x48]
push ebp
push esi
call fcn.10009e3e
push esi
push dword [esp + 0x84]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x118]
lea ebx, [eax + ebp]
call fcn.100150e2
add esp, 0x38
mov esi, 0x5da157e
jmp 0x1001609b
mov eax, dword [esp + 0x28]
lea esi, [esp + 0x140]
mov eax, dword [esp + 0x80]
mov eax, dword [esp + 0xb8]
push ecx
push ecx
push 0x10
push 8
pop edx
call fcn.1001e80b
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x68]
cmp eax, edx
jae 0x10016188
sub edx, eax
mov edi, esi
mov ecx, edx
mov eax, 0x2d002d
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
lea esi, [esi + edx*2]
rep stosw word es:[edi], ax
mov eax, dword [esp + 0xa0]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0xf8]
push ecx
push ecx
push 0x10
push 8
pop edx
call fcn.1001e80b
push esi
push 0xb
push dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov edi, eax
mov ecx, dword [esp + 0x90]
push edi
call fcn.10010a38
mov esi, 0x276c3a
jmp 0x10016098
mov esi, 0x30cf5dd
jmp 0x10016008
mov eax, dword [esp + 0x40]
mov edi, 0x4000
mov eax, dword [esp + 0x60]
mov edx, edi
push ecx
call fcn.100190b9
mov dword [esp + 0x108], eax
pop ecx
test eax, eax
je 0x10016361
mov esi, 0xf0720dc
jmp 0x1001609b
cmp esi, 0x5da157e
je 0x1001631a
cmp esi, 0x640dc91
je 0x100163f3
cmp esi, 0x7b2ed8e
je 0x100162d1
cmp esi, 0xc992df4
je 0x100162a3
cmp esi, 0xf0720dc
jne 0x1001634e
push dword [esp + 0x84]
mov edx, 0x100010fc
push dword [esp + 0x14]
mov ecx, dword [esp + 0x94]
call fcn.1001e4bc
pop ecx
pop ecx
mov esi, eax
mov edx, 0x9fe0fbd8
lea eax, [esp + 0x140]
push eax
push esi
push edi
push dword [esp + 0x110]
push 0x5a
call fcn.1001bb62
pop ecx
call eax
push esi
push dword [esp + 0xfc]
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0xac]
call fcn.100150e2
add esp, 0x18
mov esi, 0xc992df4
jmp 0x1001609b
add edi, dword [ecx + 4]
mov eax, dword [esp + 0x14]
mov edx, edi
mov eax, dword [esp + 0x1c]
push ecx
call fcn.100190b9
mov ebp, eax
mov esi, 0x640dc91
test ebp, ebp
mov eax, 0xdca11d
pop ecx
mov ecx, dword [esp + 0x7c]
cmovne esi, eax
jmp 0x10016008
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0xfc]
push ecx
push ecx
push 0x10
push 4
pop edx
call fcn.1001e80b
mov edi, eax
lea eax, [esp + 0x1cc]
push eax
push 0xb
push dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x4c]
push edi
call fcn.10010a38
mov esi, 0xd3ecf6
jmp 0x10016098
push dword [ecx]
push dword [esp + 0xb0]
mov edx, dword [esp + 0xcc]
push ebx
push dword [ecx + 4]
mov ecx, dword [esp + 0x4c]
call fcn.1001fb12
mov ecx, dword [esp + 0x8c]
add esp, 0x10
mov esi, 0x42e4efc
mov eax, 0xdca11d
add ebx, dword [ecx + 4]
cmp esi, 0xfd9a81b
jne 0x10016008
mov eax, dword [esp + 0x104]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x230
ret
push dword [esp + 0xb4]
mov edx, 0x1000108c
push dword [esp + 0x48]
push dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
call fcn.1001fbb8
push dword [esp + 0xd8]
mov esi, eax
lea edx, [esp + 0x150]
push dword [esp + 0xe4]
mov eax, dword [esp + 0x120]
mov ecx, ebx
push dword [esp + 0xf0]
sub eax, ebx
push dword [esp + 0xfc]
push esi
push eax
call fcn.1000c640
push esi
push dword [esp + 0x84]
mov edx, dword [esp + 0xe8]
add ebx, eax
mov ecx, dword [esp + 0x90]
call fcn.100150e2
mov eax, dword [esp + 0x134]
add esp, 0x2c
sub ebx, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebx
jmp 0x1001635a
push dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x108]
call fcn.100081f5
pop ecx
xor eax, eax
jmp 0x10016361