Function at 0x40f4b8
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x228], 0
push ebx
push esi
push edi
push 0x2c
call fcn.00401694
pop ecx
xor ecx, ecx
mov ebx, 0x100
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x22c], eax
xor edx, edx
mov byte [ebp + ecx - 0x108], cl
push 0x39
mov eax, ecx
pop esi
div esi
mov al, byte [edx + 0x43d370]
mov byte [ebp + ecx - 0x208], al
inc ecx
cmp ecx, ebx
jl 0x40f4f8
xor esi, esi
xor edi, edi
mov dl, byte [ebp + esi - 0x108]
movzx eax, byte [ebp + esi - 0x208]
add edi, eax
movzx ecx, dl
add edi, ecx
and edi, 0x800000ff
jns 0x40f544
dec edi
or edi, 0xffffff00
inc edi
mov al, byte [ebp + edi - 0x108]
mov byte [ebp + esi - 0x108], al
inc esi
mov byte [ebp + edi - 0x108], dl
cmp esi, ebx
jl 0x40f51e
xor ebx, ebx
mov dword [ebp - 0x234], 0x4178c0
xor esi, esi
inc ebx
and ebx, 0x800000ff
jns 0x40f57d
dec ebx
or ebx, 0xffffff00
inc ebx
mov cl, byte [ebp + ebx - 0x108]
movzx edx, cl
add esi, edx
mov dword [ebp - 0x23c], ebx
and esi, 0x800000ff
jns 0x40f59f
dec esi
or esi, 0xffffff00
inc esi
mov al, byte [ebp + esi - 0x108]
mov byte [ebp + ebx - 0x108], al
mov byte [ebp + esi - 0x108], cl
movzx eax, byte [ebp + ebx - 0x108]
add eax, edx
mov dword [ebp - 0x240], esi
movzx eax, al
mov dword [ebp - 0x238], eax
xor eax, eax
mov dword [ebp - 0x230], eax
push str.Zero
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x224], eax
call fcn.00401192
mov esi, dword [ebp - 0x22c]
xor ebx, ebx
mov edx, dword [ebp - 0x224]
mov ecx, esi
mov edi, dword [esi + 4]
cmp byte [edi + 0xd], bl
jne 0x40f61e
mov eax, edi
xor ebx, ebx
mov edi, eax
cmp dword [eax + 0x10], edx
jge 0x40f613
mov eax, dword [eax + 8]
jmp 0x40f618
mov ecx, eax
inc ebx
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40f605
cmp byte [ecx + 0xd], 0
jne 0x40f62d
cmp edx, dword [ecx + 0x10]
jl 0x40f62d
mov al, 1
jmp 0x40f62f
xor al, al
test al, al
jne 0x40f67d
cmp dword [ebp - 0x228], 0x5d1745d
je 0x40f7ea
lea eax, [ebp - 0x224]
push eax
push esi
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x248]
call fcn.0040151c
lea ecx, [ebp - 0x248]
mov esi, dword [eax + 4]
and dword [eax + 4], 0
call fcn.00401378
push esi
push ebx
push edi
lea ecx, [ebp - 0x22c]
call fcn.0040139e
lea ecx, [ebp - 0x220]
call fcn.0040116f
imul esi
movsx edi, dx
add dx, si
and dx, cx
rol esi, 0x38
add esi, 0x26a
dec ecx
inc eax
ror esi, 0xa8
or di, ax
inc si
rol cx, 0xe2
inc ebx
dec si
rol edx, 0x63
add ecx, 0x103
and cx, 0x127
mul di
mul di
shr eax, 0xf1
add eax, eax
add ebx, 0x2bd
je 0x40f6f1
cmp edx, 0x3d
jae 0x40f733
imul dx
mul ecx
xor bx, 0xce
rol si, 0xc7
shr di, 0xe1
xor esi, 0x1b4
rol bx, 0x8a
jmp 0x40f707
rcr eax, 0x62
imul edx
imul di
shr ax, 0xdd
mov edx, 0x1e9
inc dx
imul dx
inc eax
rol edi, 0xd1
shr ax, 0x46
mov cx, bx
dec di
add ax, 0x78
mul cx
jb 0x40f733
test esi, 0x43
jb 0x40f764
rcl dx, 0xb5
add ebx, 0x3f
add eax, 0x1b7
jmp 0x40f750
mul cx
ror eax, 0x1f
shr cx, 0xd6
inc bx
inc cx
dec edi
mul eax
imul si
xor bx, 0x1f2
shr ax, 0xb1
shl bx, 0x17
jb 0x40f764
rol esi, 0x73
mul dx
inc dx
ror dx, 0x50
jmp 0x40f77d
ror ebx, 0x71
rcl edi, 0x49
shl bx, 0x6e
xor bx, di
mul ebx
imul esi
xor edi, ebx
dec esi
or dx, 0x92
movzx ebx, cx
inc edx
inc eax
rcr eax, 0x29
mov eax, dword [ebp - 0x230]
inc eax
mov dword [ebp - 0x230], eax
cmp eax, 0xa
jl 0x40f5d5
mov eax, dword [ebp - 0x238]
mov ebx, dword [ebp - 0x234]
mov al, byte [ebp + eax - 0x108]
xor byte [ebx], al
inc ebx
mov dword [ebp - 0x234], ebx
cmp ebx, 0x43cec0
jge 0x40f7d0
mov ebx, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x240]
jmp 0x40f56c
lea ecx, [ebp - 0x22c]
call fcn.0040110f
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401686
leave
ret
call fcn.004010e2
int3