Function at 0x413d71
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov ecx, esi
mov dword [ebp - 8], edi
call fcn.0040ee0f
push 0x830
xor edx, edx
push edx
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [edi]
add esp, 0xc
mov dword [ebp - 0x28], eax
mov ebx, dword [eax]
add eax, 4
mov dword [edi], eax
mov ecx, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
shr eax, 0x13
and ecx, 0x7ff
and eax, 0xf
mov dword [esi], ecx
mov dword [esi + 0x7d0], eax
mov eax, ebx
and eax, 0x2000
mov dword [esi + 0x80c], eax
mov eax, ebx
shr eax, 0x18
and eax, 0x7f
mov dword [ebp - 4], eax
cmp ecx, 0xec
jae 0x41478f
imul eax, ecx, 0x48
movzx eax, byte [eax + 0x417cf0]
mov dword [esi + 0x7c8], eax
mov eax, dword [edi + 4]
mov edx, dword [eax]
mov eax, edx
and eax, 0xf0
cmp eax, 0x50
ja 0x413e16
jne 0x413e0f
test dl, 0xf
ja 0x413e16
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x413e1f
mov dword [ebp - 0xc], 1
xor eax, eax
push 4
pop edx
test ebx, ebx
jns 0x413e51
cmp ecx, 0x92
je 0x413e36
cmp ecx, 0x91
jne 0x413e51
mov dword [esi + 0x7cc], 1
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 4], ecx
mov dword [edi], eax
jmp 0x413f37
mov dword [esi + 0x7cc], eax
mov dword [ebp - 0x14], eax
mov eax, ebx
sar eax, 0x1f
test eax, 3
jbe 0x413f37
lea ebx, [esi + 0x7d4]
inc dword [esi + 0x7cc]
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov eax, ecx
and eax, 0x3f
mov dword [ebp - 0x10], ecx
mov dword [ebx], eax
sub eax, 1
je 0x413ed9
sub eax, 1
je 0x413eb9
sub eax, 1
jne 0x413f1e
mov edi, dword [ebp - 0x10]
push 6
pop ecx
mov eax, edi
shr eax, cl
and eax, 0xf
mov dword [esi + ecx + 0x7e6], eax
add ecx, edx
cmp ecx, 0x16
jb 0x413ea2
jmp 0x413f18
mov eax, ecx
shr eax, 6
and eax, 0x1f
mov dword [esi + 0x7e4], eax
mov eax, ecx
shr eax, 0xb
and eax, 0xfff
mov dword [esi + 0x7e8], eax
jmp 0x413f1e
mov eax, dword [ebp - 0x10]
lea ecx, [esi + 0x7e0]
shr eax, 9
and al, 0xf
mov byte [ecx], al
mov eax, dword [ebp - 0x10]
shr eax, 0xd
and al, 0xf
mov byte [esi + 0x7e1], al
mov eax, dword [ebp - 0x10]
shr eax, 0x11
and al, 0xf
push 3
mov byte [esi + 0x7e2], al
pop edi
mov al, byte [ecx]
test al, 8
je 0x413f12
or al, 0xf0
mov byte [ecx], al
inc ecx
sub edi, 1
jne 0x413f08
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
test ecx, ecx
jns 0x413f34
mov eax, dword [ebp - 0x14]
add ebx, edx
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 3
jl 0x413e70
mov ebx, dword [ebp - 0x1c]
mov eax, dword [esi]
cmp eax, 0x69
jg 0x41441c
je 0x414392
cmp eax, 0x5c
jg 0x414354
je case.0x414360.93
cmp eax, 0x3d
jg 0x4141ec
je 0x4141bf
sub eax, 3
je 0x41432f
dec eax
sub eax, 1
je 0x414198
sub eax, 3
je 0x41432f
sub eax, 5
je 0x41432f
sub eax, 0x12
je 0x41432f
sub eax, 0x16
jne case.default.0x4145ed
xor ecx, ecx
shr ebx, 0xb
mov dword [esi + 0x7d0], ecx
mov dword [esi + 0x80c], ecx
mov dword [esi + 0x7c8], ecx
mov dword [esi + 0x810], ebx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [ebp - 4], eax
cmp eax, 2
jae 0x413fda
push 2
pop eax
mov dword [esi + 0x818], ecx
mov dword [esi + 0x814], ecx
jmp 0x414163
lea eax, [eax*4 - 8]
mov dword [esi + 0x814], eax
mov eax, dword [edi]
mov eax, dword [eax]
lea eax, [eax*4 - 8]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll__o_malloc
mov edx, eax
mov dword [esi + 0x818], edx
pop ecx
test edx, edx
je 0x4147a0
mov ecx, dword [edi]
mov eax, dword [ecx]
lea eax, [eax*4 - 8]
push eax
lea eax, [ecx + 4]
push eax
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov eax, dword [esi + 0x810]
add esp, 0xc
test eax, eax
je 0x414184
push 4
pop ecx
cmp eax, ecx
jne 0x414160
mov edx, dword [esi + 0x814]
lea ebx, [esi + 0x81c]
mov esi, dword [esi + 0x818]
xor eax, eax
mov edi, ebx
shr edx, 2
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
cmp edx, 6
jb 0x41415d
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
add eax, ecx
mov ecx, dword [esi + 0x10]
shr eax, 2
mov dword [ebp - 0x20], edi
cmp ecx, 0x10000
jae 0x41415d
cmp edi, 0x1000
jae 0x41415d
cmp eax, 0x10000
jae 0x41415d
add eax, 5
add eax, ecx
cmp edx, eax
jb 0x41415d
add ecx, 5
lea eax, [esi + ecx*4]
mov dword [ebp - 0xc], eax
imul eax, edi, 0xf8
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll__o_malloc
mov dword [ebx + 0x10], eax
pop ecx
test eax, eax
je 0x4147a0
xor eax, eax
lea edx, [esi + 0x14]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test edi, edi
je 0x414148
mov ebx, dword [ebp - 8]
mov ecx, eax
mov dword [ebp - 0x10], eax
cmp edx, dword [ebp - 0xc]
jae 0x414142
mov esi, dword [ebp - 0x1c]
push 0xf8
push eax
mov eax, dword [esi + 0x10]
add eax, ecx
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [esi + 0x10]
add esp, 0xc
mov edi, dword [ebx]
mov ecx, dword [ebp - 0x14]
add eax, dword [ebp - 0x10]
mov esi, dword [ebx + 8]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 8], ecx
mov ecx, ebx
push eax
call fcn.00413b5f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx]
inc eax
mov ecx, dword [ebp - 0x10]
mov dword [ebx], edi
add ecx, 0xf8
mov edi, dword [ebp - 0x20]
cmp eax, edi
push 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov dword [ebx + 8], esi
mov dword [ebp - 0x10], ecx
pop eax
jb 0x4140e1
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
je 0x414172
push dword [ebx + 0x10]
call fcn.0041557e
xor edx, edx
pop ecx
mov dword [ebx + 0x10], edx
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
lea eax, [ecx + eax*4]
mov dword [edi], eax
pop edi
pop esi
pop ebx
leave
ret 4
mov eax, dword [esi]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edi
jmp 0x41415d
mov ecx, dword [esi + 0x814]
xor edx, edx
mov eax, dword [esi + 0x818]
mov byte [ecx + eax - 1], dl
jmp 0x414160
shr ebx, 0x12
and ebx, 1
lea eax, [esi + 8]
mov dword [esi + 0x810], ebx
push eax
mov ecx, edi
call fcn.00413b5f
lea eax, [esi + 0x100]
push eax
mov ecx, edi
call fcn.00413b5f
jmp 0x414160
shr ebx, 0xb
lea eax, [esi + 8]
and ebx, 3
mov ecx, edi
push eax
mov dword [esi + 0x810], ebx
call fcn.00413b5f
lea eax, [esi + 0x100]
mov ecx, edi
push eax
call fcn.00413b5f
lea eax, [esi + 0x1f8]
jmp 0x4141b5
sub eax, 0x3f
je 0x41432f
sub eax, 0x19
je 0x4142a9
sub eax, 1
je 0x414262
sub eax, 1
je 0x41422b
sub eax, 1
jne case.default.0x4145ed
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00413b5f
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x810], eax
jmp 0x414160
shr ebx, 0xb
and ebx, 0xf
lea eax, [esi + 8]
mov dword [esi + 0x810], ebx
push eax
mov ecx, edi
call fcn.00413b5f
xor edx, edx
mov dword [esi + 0x814], edx
cmp dword [ebp - 0xc], edx
je 0x414160
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x814], eax
jmp 0x414160
shr ebx, 0xb
lea eax, [esi + 8]
and ebx, 1
mov ecx, edi
push eax
mov dword [esi + 0x810], ebx
call fcn.00413b5f
xor edx, edx
mov dword [esi + 0x818], edx
cmp dword [ebp - 0xc], edx
je 0x4142a4
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [esi + 0x814], ecx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x818], eax
jmp 0x414160
mov eax, dword [esi + 0x48]
jmp 0x414257
mov eax, ebx
mov ecx, edi
shr eax, 0xb
and eax, 0x1f
mov dword [esi + 0x810], eax
lea eax, [esi + 8]
push eax
call fcn.00413b5f
mov eax, dword [edi]
push 0xf
pop ecx
shr ebx, 0x10
mov eax, dword [eax]
and eax, ecx
mov dword [esi + 0x814], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 4
and eax, ecx
mov dword [esi + 0x818], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 8
and eax, ecx
mov dword [esi + 0x81c], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 0xc
and eax, ecx
and ebx, 0x7f
mov dword [esi + 0x820], eax
mov dword [esi + 0x824], ebx
push 4
pop ecx
add dword [edi], ecx
xor edx, edx
mov dword [esi + 0x828], edx
cmp dword [ebp - 0xc], edx
je 0x414160
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x828], eax
jmp 0x414160
shr ebx, 0x12
and ebx, 1
mov dword [esi + 0x810], ebx
lea eax, [esi + 8]
jmp 0x4141b5
shr ebx, 0xb
and ebx, 0x3f
mov dword [esi + 0x810], ebx
jmp 0x414160
sub eax, 0x5d
cmp eax, 0xb
ja case.default.0x4145ed
jmp dword [eax*4 + 0x4147b5]
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00413b5f
mov eax, dword [edi]
movzx eax, word [eax]
jmp 0x414220
shr ebx, 0xb
and ebx, 0xf
jmp 0x414335
shr ebx, 0xb
and ebx, 0xf
mov dword [esi + 0x814], ebx
jmp case.0x414360.96
mov eax, dword [edi]
xor ebx, ebx
inc ebx
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x810], eax
add dword [edi], edx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x814], eax
add dword [edi], edx
mov eax, dword [edi]
mov eax, dword [eax]
cmp eax, ebx
jb 0x4143b9
mov ecx, eax
cmp ecx, edx
ja 0x4143c5
mov edx, ebx
cmp eax, ebx
jb 0x4143c5
mov edx, eax
sub edx, 1
je 0x41440d
sub edx, 1
je 0x4143fe
sub edx, 1
je 0x4143ef
mov eax, dword [ebp - 4]
sub edx, 1
jne 0x414163
mov dword [esi + 0x818], 0xf0
jmp 0x414163
mov dword [esi + 0x818], 0x70
jmp 0x414160
mov dword [esi + 0x818], 0x30
jmp 0x414160
mov dword [esi + 0x818], 0x10
jmp 0x414160
mov ecx, 0x98
cmp eax, ecx
jg 0x4145cc
je 0x4145bd
add ecx, 0xfffffffa
cmp eax, ecx
jg 0x414580
je 0x414507
sub eax, 0x6a
je 0x4144fc
sub eax, 5
je 0x4144f1
sub eax, 9
je 0x4144d4
sub eax, 0x17
je case.0x414360.95
sub eax, 1
je case.0x4145ed.153
sub eax, 1
jne case.default.0x4145ed
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x810], eax
add dword [edi], edx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x814], eax
shl eax, 2
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll__o_malloc
mov dword [esi + 0x818], eax
pop ecx
test eax, eax
jne 0x4144b0
mov dword [ebp - 0x24], 0x8007000e
lea eax, [ebp - 0x24]
push 0x4159a0
jmp 0x4147af
push 4
pop ecx
add dword [edi], ecx
mov eax, dword [esi + 0x814]
shl eax, 2
push eax
push dword [edi]
push dword [esi + 0x818]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x414160
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
lea eax, [esi + 8]
mov dword [esi + 0x810], ecx
mov dword [esi + 0x814], eax
jmp 0x4141b5
shr ebx, 0xb
and ebx, 3
jmp 0x41419e
and ebx, 0xfff800
jmp 0x414349
shr ebx, 0xb
and bl, 1
mov byte [esi + 0x820], bl
mov eax, dword [edi]
mov ax, word [eax]
mov word [esi + 0x810], ax
add dword [edi], edx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x814], eax
add dword [edi], edx
mov eax, dword [edi]
mov ecx, dword [eax]
and ecx, 0xffff
mov dword [esi + 0x818], ecx
mov eax, dword [edi]
mov ax, word [eax + 2]
mov word [esi + 0x812], ax
mov eax, ecx
shl eax, 2
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll__o_malloc
mov dword [esi + 0x81c], eax
pop ecx
test eax, eax
je 0x41449c
push 4
pop ecx
add dword [edi], ecx
mov eax, dword [esi + 0x818]
shl eax, 2
push eax
push dword [edi]
push dword [esi + 0x81c]
jmp 0x4144c7
sub eax, 0x93
je case.0x414360.93
sub eax, 1
je case.0x414360.93
sub eax, 1
je 0x4145b2
sub eax, 1
je 0x4145a7
sub eax, 1
jne case.default.0x4145ed
shr ebx, 0xb
and ebx, 7
jmp 0x414349
shr ebx, 0xb
and ebx, 3
jmp 0x414349
mov eax, dword [edi]
fld dword [eax]
fstp dword [esi + 0x810]
jmp 0x414160
mov ecx, 0xbe
cmp eax, ecx
jg 0x41474f
je 0x414714
sub eax, 0x99
cmp eax, 9
ja case.default.0x4145ed
jmp dword [eax*4 + 0x4147e5]
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [esi + 0x810], ecx
jmp 0x414286
mov eax, ebx
mov ecx, edi
shr eax, 0xb
and ebx, 0x830000
and eax, 0x1f
mov dword [esi + 0x824], ebx
mov dword [esi + 0x810], eax
lea eax, [esi + 8]
push eax
call fcn.00413b5f
mov eax, dword [edi]
push 0xf
pop ecx
mov eax, dword [eax]
and eax, ecx
mov dword [esi + 0x814], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 4
and eax, ecx
mov dword [esi + 0x818], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 8
and eax, ecx
mov dword [esi + 0x81c], eax
mov eax, dword [edi]
mov eax, dword [eax]
shr eax, 0xc
and eax, ecx
mov dword [esi + 0x820], eax
jmp 0x41430a
and ebx, 0x830000
jmp 0x414231
lea eax, [esi + 8]
and ebx, 0x830000
push eax
mov ecx, edi
mov dword [esi + 0x814], ebx
call fcn.00413b5f
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [esi + 0x810], ecx
mov dword [esi + 0x818], edx
cmp dword [ebp - 0xc], edx
je 0x414160
jmp 0x414295
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00413b5f
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [esi + 0x810], ecx
jmp 0x414253
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00413b5f
xor edx, edx
mov dword [esi + 0x810], edx
cmp dword [ebp - 0xc], edx
je 0x414160
jmp case.0x4145ed.153
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00413b5f
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [esi + 0x810], ecx
jmp 0x414242
and ebx, 0x7800
mov eax, ebx
shr eax, 0xb
and al, 1
mov byte [esi + 0x810], al
mov eax, ebx
shr eax, 0xc
and al, 1
mov byte [esi + 0x811], al
mov eax, ebx
shr eax, 0xd
and al, 1
shr ebx, 0xe
mov byte [esi + 0x813], al
mov byte [esi + 0x812], bl
jmp 0x414160
cmp eax, 0xce
je case.0x4145ed.153
xor ebx, ebx
cmp dword [esi + 0x7c8], ebx
jbe 0x414160
lea eax, [esi + 8]
mov dword [ebp - 0x1c], eax
push eax
mov ecx, edi
call fcn.00413b5f
mov eax, dword [ebp - 0x1c]
inc ebx
add eax, 0xf8
mov dword [ebp - 0x1c], eax
cmp ebx, dword [esi + 0x7c8]
jb 0x41476e
jmp 0x414160
mov dword [ebp - 0x28], 0x80004005
lea eax, [ebp - 0x28]
push 0x4159a0
jmp 0x4147af
mov dword [ebp - 0x1c], 0x8007000e
lea eax, [ebp - 0x1c]
push 0x4159a0
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
inc ebx
inc ebx
inc ecx
add byte [edx + eax*2], bl
inc ecx
add byte [ebx], bh
inc ebx
inc ecx
add byte [edi + 0x43], ah
inc ecx
add byte [edi + 0x43], ah
inc ecx
add byte [ebx + eax*2 + 0x41], bh
add byte [ebx + eax*2 + 0x43840041], al
inc ecx
add byte [ebx], bh
inc ebx
inc ecx
add byte [edi + 0x43], ah
inc ecx
add byte [edi + 0x43], ah
inc ecx
add byte [edx + eax*2], bl
inc ecx
add byte [edx + eax*2], bl
inc ecx
add byte [edx + eax*2], bl
inc ecx
add ah, dh
inc ebp
inc ecx
add byte [eax], cl
inc esi
inc ecx
add byte [esi + 0x46], ch
inc ecx
add byte [ecx + 0x46], bh
inc ecx
add byte [ecx], dl
inc edx
inc ecx
add byte [ebp - 0x2bffbeba], dh
inc esi
inc ecx
add ch, dh
inc esi
inc ecx
add byte [ebx - 0x1374aa01], cl
mov edi, edi
push ebp
mov ebp, esp