Function at 0x4178fb
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
movzx edi, word [esi]
mov dword [ebp - 0x18], edi
test edi, edi
je 0x417c27
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*2]
add eax, 0xffffff38
cmp dword [ebp + 0x2c], 0
je 0x417328
cmp edx, eax
ja 0x4546a9
mov eax, dword [ebp - 0xa8]
cmp edx, eax
jb 0x41824a
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp + 0x2c]
sar ecx, 1
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x454601
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx], eax
test ebx, ebx
je 0x417336
mov ecx, dword [ebp - 0xb0]
cmp ebx, ecx
ja 0x4175b7
mov edx, dword [ebp - 8]
jmp 0x41733f
mov ecx, dword [ebp + 0x28]
cmp dword [ecx + 0x20], eax
ja 0x4546a9
jmp 0x417348
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0x30], 0
jne 0x451c19
mov edx, dword [ebp - 0x34]
mov ebx, edx
and ebx, 8
mov dword [ebp - 0x68], ebx
jne 0x418254
push 0x2a
pop eax
cmp edi, eax
je 0x41787d
push 0x2b
pop eax
cmp edi, eax
je 0x41787d
push 0x3f
pop eax
cmp edi, eax
je 0x41787d
push 0x7b
pop eax
cmp edi, eax
je 0x451d89
xor eax, eax
cmp dword [ebp - 0x78], eax
mov ecx, eax
mov eax, dword [ebp - 0x60]
jne 0x451da1
test edx, 0x4000
jne 0x451de2
mov edx, dword [ebp - 8]
push 0x3f
pop eax
cmp edi, eax
ja 0x41752b
je 0x417afd
mov eax, edi
xor ecx, ecx
sub eax, ecx
je 0x41755b
sub eax, 0x24
je 0x4528e3
sub eax, 4
je 0x4178eb
dec eax
je 0x41755b
dec eax
je 0x417c58
dec eax
je 0x41825e
sub eax, 3
je 0x417fe9
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0xc]
mov ebx, edx
mov word [ebp - 0xf8], di
je 0x417421
mov eax, edi
mov ecx, 0xfc00
and eax, ecx
cmp eax, 0xd800
je 0x4533d8
push 2
pop esi
cmp dword [ebp - 0x3c], 0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x34]
je 0x417481
test dl, al
je 0x417481
movzx ecx, di
mov edx, 0xfc00
mov eax, ecx
and eax, edx
mov edx, 0xd800
cmp eax, edx
je 0x45441e
mov eax, ecx
mov ecx, 0x80
cdq
idiv ecx
movzx eax, byte [eax + 0x4b3b40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4a5840]
movzx eax, byte [eax*8 + 0x4a2f53]
test eax, eax
jne 0x417f71
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
test cl, al
mov edi, dword [ebp - 8]
push 0
pop eax
setne al
push 0x1d
pop ecx
add eax, ecx
mov word [edi], ax
add edi, esi
mov dword [ebp - 8], edi
test ebx, ebx
je 0x4174ba
mov ecx, ebx
lea esi, [ebp - 0xf8]
shr ecx, 1
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
rep movsw word es:[edi], word [esi]
mov edi, dword [ebp - 8]
lea edi, [edi + ebx*2]
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x18]
push 0xd
pop ecx
cmp ax, cx
je 0x45444a
push 0xa
pop ecx
cmp ax, cx
je 0x45444a
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
je 0x41783d
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x58], eax
cmp ebx, dword [ebp - 0xc]
jne 0x454485
movzx eax, word [edi - 2]
mov dword [ebp - 0x5c], eax
mov eax, dword [ecx + 0x68]
or eax, dword [ebp - 0x8c]
mov dword [ebp - 0x54], eax
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 8]
push 2
pop eax
add esi, eax
mov dword [ebp - 4], esi
jmp 0x4172b4
mov eax, edi
sub eax, 0x5b
je 0x4175ee
dec eax
je 0x417888
dec eax
je 0x4533ba
dec eax
je 0x453393
sub eax, 0x1d
je 0x4528f7
dec eax
jne 0x4173fb
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp + 0x2c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x54]
mov dword [eax], ecx
mov eax, dword [ebp - 0x140]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax], esi
test ebx, ebx
je 0x4175ad
sub edx, dword [ebp - 0xa8]
mov ecx, 0x7fffffeb
mov eax, dword [ebx]
sub ecx, eax
sar edx, 1
cmp ecx, edx
jl 0x454601
lea ecx, [eax + edx]
mov dword [ebx], ecx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
sub eax, ebx
and eax, 0xfffffffe
push eax
push ebx
push ecx
call fcn.00428020
sub ebx, dword [ebp - 0xb0]
add esp, 0xc
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 4]
sar ebx, 1
neg ebx
lea edx, [edx + ebx*2]
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 8], edx
mov dword [ebp - 0x10], ebx
jmp 0x41733f
lea edi, [esi + 2]
mov edx, 0x48fbb8
push 6
mov ecx, edi
call fcn.00418395
pop ecx
test eax, eax
je 0x453c31
push 6
mov edx, 0x48fbb0
mov ecx, edi
call fcn.00418395
pop ecx
test eax, eax
je 0x453c3e
mov eax, dword [ebp - 8]
push 0x3a
mov dword [ebp - 0x10], eax
movzx eax, word [edi]
pop ebx
cmp ax, bx
je 0x453c4b
push 0x2e
pop ecx
cmp ax, cx
je 0x453c4b
push 0x3d
pop ecx
cmp ax, cx
je 0x453c4b
xor eax, eax
push 2
mov dword [ebp - 0x24], eax
pop edi
push 0x5c
pop ecx
push 0x45
pop edx
add esi, edi
mov dword [ebp - 4], esi
movzx ebx, word [esi]
mov dword [ebp - 0x18], ebx
cmp ebx, ecx
je 0x4181b3
test eax, eax
jne 0x41767a
cmp ebx, 0x5e
je 0x453c79
push 0x5d
pop ecx
cmp ebx, ecx
je 0x453c84
mov edi, dword [ebp - 8]
xor edx, edx
push 0x20
pop eax
push eax
add edi, 6
mov dword [ebp - 0x28], edx
push edx
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x68], edx
push eax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x38], edx
call fcn.00423020
mov esi, dword [ebp - 4]
add esp, 0xc
test ebx, ebx
je 0x454329
cmp dword [ebp - 0x3c], 0
je 0x4176e0
mov eax, ebx
mov ecx, 0xfc00
and eax, ecx
mov edx, 0xd800
cmp eax, edx
je 0x453cc9
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x4176f2
mov ecx, dword [ebp - 0x80]
cmp edi, ecx
ja 0x453d00
cmp dword [ebp - 0x30], 0
jne 0x453d19
cmp ebx, 0x5b
je 0x453d40
push 0x5c
pop eax
cmp ebx, eax
je 0x4181df
mov edx, dword [ebp + 0xc]
xor ecx, ecx
push 0x5c
pop edi
cmp word [esi + 2], di
je 0x4182d0
push 0xd
pop eax
mov ecx, esi
cmp ebx, eax
je 0x4541cb
push 0xa
pop eax
cmp ebx, eax
je 0x4541cb
mov edi, dword [ebp - 0x30]
test edi, edi
jne 0x41774e
push 0x2d
pop eax
cmp word [esi + 2], ax
je 0x417ecd
mov eax, dword [ebp - 0x58]
push 2
pop ecx
cmp eax, ecx
jl 0x417834
cmp dword [ebp - 0x30], 0
jne 0x41776d
mov edx, dword [ebp - 0xc]
cmp eax, edx
je 0x417aeb
push ebx
push ebx
push dword [ebp + 0x28]
push dword [ebp - 0x34]
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0xd4]
call fcn.00418305
add esp, 0x10
add dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
push 2
pop ebx
add esi, ebx
mov dword [ebp - 4], esi
movzx ebx, word [esi]
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x454305
cmp ebx, 0x5d
jne 0x4176c4
test eax, eax
jne 0x4176c4
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0xc]
cmp edi, esi
ja 0x4177cc
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x2c]
cmp ebx, 0xfffffffe
je 0x417f9b
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x6c], ebx
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x58], ebx
test eax, eax
jne 0x45449a
mov ebx, dword [ebp + 0x2c]
test ebx, ebx
je 0x417805
sub edi, esi
sar edi, 1
add dword [ebx], edi
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov edi, dword [ebp - 8]
cmp ecx, edx
push 0x6e
pop edx
setne al
add eax, edx
push 2
pop edx
mov word [edi], ax
add edi, edx
test ebx, ebx
je 0x417c37
push 0x20
pop eax
add edi, eax
mov dword [ebp - 8], edi
jmp 0x417515
inc eax
mov dword [ebp - 0x58], eax
jmp 0x41775c
mov edx, dword [ebp - 0x5c]
or dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0xc]
cmp ebx, edx
jne 0x454459
movzx eax, ax
cmp ebx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x2c], eax
jne 0x454473
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
jmp 0x41751e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x60]
jmp 0x41739f
xor ebx, ebx
mov dword [ebp - 0x70], esi
mov esi, dword [ebp + 0x28]
lea edx, [ebp - 0x94]
push ebx
push dword [ebp - 0x34]
lea ecx, [ebp - 4]
push dword [esi + 0x40]
push dword [ebp + 0xc]
call fcn.004183c4
mov edx, dword [ebp + 0xc]
add esp, 0x10
mov edi, eax
cmp dword [edx], ebx
jne 0x4182fd
test edi, edi
jne 0x418034
cmp dword [ebp - 0x94], 0xffff
ja 0x453406
mov di, word [ebp - 0x94]
mov edx, dword [ebp - 0xc]
mov word [ebp - 0xf8], di
mov ebx, edx
mov dword [ebp - 0x18], edi
jmp 0x417421
push 2
pop ebx
add esi, ebx
push 0x3f
mov dword [ebp - 4], esi
pop eax
movzx edx, word [esi]
cmp dx, ax
ror byte [edi], 1
test byte [eax + 3], ah
add byte [eax], al
push 0x2a
pop eax
cmp dx, ax
je 0x451e82
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], ecx
push 0x3f
mov ecx, dword [ebx + 0x20]
sub ecx, dword [ebx + 0x10]
sar ecx, 1
mov dword [ebp - 0x88], ecx
xor ecx, ecx
pop edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x1c], 0x85
mov dword [ebp - 0x38], ecx
cmp dx, di
je 0x417c74
test eax, 0x1000
jne 0x418270
mov edx, dword [ebp - 8]
inc dword [ebx + 0x40]
mov ax, word [ebx + 0x40]
mov word [edx + 4], ax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0x1c]
push 0x52
pop edi
mov eax, dword [ebp + 0x28]
inc dword [eax + 0x58]
cmp dword [eax + 0x58], 0xfa
jg 0x4182f3
lea eax, [ebx - 0x7d]
xor ecx, ecx
cmp eax, 3
mov eax, dword [ebp + 0x28]
jbe 0x453678
mov dword [ebp - 0x10], edx
mov word [edx], bx
mov edi, dword [eax + 0x68]
mov esi, dword [eax + 0x40]
mov eax, dword [ebp + 0x2c]
neg eax
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x44], edx
sbb eax, eax
mov dword [ebp - 0x74], edi
and eax, ecx
mov ecx, 0x87
cmp ebx, ecx
je 0x418294
xor ecx, ecx
mov edx, ecx
cmp ebx, 0x7f
je 0x41829e
cmp ebx, 0x80
je 0x41829e
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0xa0]
push dword [ebp + 0x20]
push eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp + 0x24]
invalid