Function at 0x422310
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ax, word [0x475b42]
cwde
add eax, 0x93bef9c6
and dword [0x43ffb8], eax
sub esp, 0x18
fld qword [0x474978]
fld qword [0x45c150]
fld qword [0x45c150]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x45c150]
fxch st(1)
fcompi st(2)
fstp st(1)
jb 0x422381
mov ecx, dword [0x43f1fc]
or ecx, 0x67dbb7ff
cmp ecx, 0xb8ee0290
jl 0x4224ce
mov eax, dword [0x44a9b0]
movzx edx, word [0x47ae46]
imul eax, eax, 0x27ac88af
add edx, eax
mov word [0x47ae46], dx
fstp st(0)
xor dword [0x43ee08], 0xfb7fbd7f
add dword [0x4425c0], 0xff7f7efe
dec dword [0x43d42c]
mov eax, dword [0x43d42c]
imul eax, eax, 0x6c985b86
push ebx
push esi
push edi
xor edi, edi
cmp eax, 0x9af0807c
jle 0x4223be
add dword [0x4448d8], 0xfbfbbf5e
mov ecx, dword [0x44be74]
imul ecx, ecx, 0x861eade8
push 0x41
mov dword [0x44be74], ecx
push 0x2df3
call fcn.0040b450
movzx edx, word [0x476dd2]
imul edx, edx, 0x5001020
push 4
mov word [0x476dd2], dx
push 0xff2
mov dword [ebp - 0xc], eax
call fcn.0040b450
mov esi, eax
lea eax, [ebp - 0x10]
push esi
mov dword [0x43ea94], 0xff7fdaa6
push eax
call fcn.00416120
fld dword [0x4861ac]
push 4
fld dword [0x481194]
push 0x119b
fadd dword [0x48f378]
fsubp st(1)
fstp dword [0x4861ac]
fld dword [0x48f378]
fsub qword [0x43aeb8]
fstp dword [0x48f378]
call fcn.0040b450
mov cx, word [0x47e574]
movsx edx, cx
sar edx, 9
sub edx, 0x138898b6
add esp, 0x20
cmp edx, 0x74afa85
mov ebx, eax
jle 0x42247d
mov eax, dword [0x443ec0]
imul eax, eax, 0x6556d9b0
mov dword [0x443ec0], eax
push esi
push 4
call fcn.0041dc90
fld dword [0x48603c]
fsub dword [0x47f9f0]
add esp, 8
fld qword [0x468068]
fld dword [0x48603c]
fsub qword [0x43aeb8]
fstp dword [0x48603c]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x42250d
movzx ecx, word [0x476bee]
or ecx, 0xeefd8dfd
mov word [0x476bee], cx
jmp 0x422517
fld dword [0x48cbb4]
fld dword [0x488dd0]
fadd dword [0x47f0d8]
fsub qword [0x460f18]
fsubp st(1)
fstp dword [0x48cbb4]
fld qword [0x460f18]
fsub st(1)
fstp qword [0x460f18]
fadd dword [0x47f0d8]
fstp dword [0x47f0d8]
jmp 0x422383
add dword [0x43d204], 0xfbdf3759
lea edx, [ebp - 0x14]
push ebx
push edx
call fcn.00416120
mov ax, word [0x479a68]
mov ecx, dword [0x4494b4]
cwde
sar eax, 1
or ecx, eax
add esp, 8
cmp ecx, 0xe3ae5cfd
jne 0x422550
mov edx, dword [0x44bff8]
or edx, 0xccc3ffd6
mov word [0x479556], dx
push 4
push 0x1ae3
call fcn.0040b450
inc dword [0x43f4ac]
mov esi, eax
mov eax, dword [0x43f4ac]
and eax, 0xcbad2138
xor eax, 0x2b2ce882
add dword [0x446a24], eax
push ebx
push 4
call fcn.0041dc90
and dword [0x444d80], 0xf201fbfc
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.00416120
mov ecx, dword [0x44127c]
mov edx, dword [0x449bb0]
xor ecx, edx
push esi
mov dword [0x44127c], ecx
push 4
call fcn.0041dc90
fld dword [0x47f128]
fld dword [0x486190]
add esp, 0x20
fmul dword [0x48d458]
fsubp st(1)
fstp dword [0x47f128]
fld1
cmp dword [ebp + 0xc], edi
je 0x422a45
mov ebx, dword [ebp + 0x14]
mov esi, 1
add dword [0x449d00], 0xca858d0d
movzx eax, word [0x479c10]
sub dword [ebp + 0xc], esi
imul eax, eax, 0xc90f950d
mov word [0x479c10], ax
mov eax, dword [ebp + 8]
mov cl, byte [eax]
mov byte [ebp + edi - 4], cl
mov dword [0x448950], 0xf95a259e
xor dword [0x43c1cc], 0xc0904dd
add edi, esi
add eax, esi
mov dword [ebp + 8], eax
mov dword [0x43e8c8], 0x16e08e00
cmp edi, 3
jne 0x422a31
fld dword [0x48a424]
fsub dword [0x48aeb8]
fld dword [0x48d788]
fadd dword [0x4831e8]
fsub qword [0x44f9c0]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x42269e
fld dword [0x488210]
fadd dword [0x488644]
fld dword [0x48b444]
fadd qword [0x4579e0]
fld qword [0x4579e0]
fsubrp st(3)
fxch st(2)
fstp qword [0x4579e0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4226a0
or dword [0x447f68], 0x18d4addf
jmp 0x4226a0
fstp st(0)
mov eax, dword [0x440910]
mov dl, byte [ebp - 4]
not eax
shr dl, 2
and eax, 0x42940808
mov byte [ebp - 8], dl
cmp eax, 0xe5c04af1
jne 0x4226d6
mov ecx, dword [0x44d688]
mov edx, dword [0x44e614]
and ecx, edx
and ecx, 0x7243728
mov dword [0x44d688], ecx
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
and dword [0x443af8], 0x7f3fdfe4
movzx ecx, byte [ebp - 3]
fld dword [0x48a978]
fmul dword [0x4812a0]
mov dl, byte [ebp - 3]
and dl, 0xf
shr cl, 4
add byte [ebp - 7], cl
add dl, dl
fstp dword [0x48a978]
add dl, dl
mov byte [ebp - 6], dl
add dword [0x43ff24], 0x53d3f2e7
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
add dword [0x44b1a8], 0x29d4cad9
movzx ecx, byte [ebp - 2]
fld dword [0x487950]
fsub qword [0x461fd8]
fld dword [0x48e398]
and cl, 0x3f
fmul qword [0x464618]
mov byte [ebp - 5], cl
fmul dword [0x48aa48]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x4227a9
add word [0x47d08c], si
mov dx, word [0x47d08c]
movsx eax, dx
cmp eax, 0x180b218c
jge 0x42278b
add dword [0x44010c], 0xb5982f09
jmp 0x4227a9
add dword [0x43d32c], esi
mov ecx, dword [0x43d32c]
imul ecx, ecx, 0x93ee774b
xor ecx, 0x1888ab1d
mov dword [0x4483d4], ecx
fld dword [0x489610]
xor esi, esi
fmul dword [0x481008]
fstp dword [0x489610]
jmp 0x4227c2
fstp st(0)
and dword [0x44e2fc], 0xd812305f
cmp byte [ebp + 0x10], 0
je 0x4228f1
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x4228f1
fld dword [0x47f040]
fstp dword [0x4866ac]
cmp al, 0x3e
jne 0x422829
fld dword [0x480300]
lea edx, [ebp - 0x10]
fadd dword [0x4834a8]
push edx
mov ecx, ebx
fsub dword [0x488418]
fstp dword [0x48cc58]
call fcn.00419700
movzx eax, word [0x47a50e]
xor eax, 0xfae1cf64
mov word [0x47a50e], ax
jmp 0x42285f
mov ecx, dword [0x449814]
mov eax, 0xefe557e2
sub eax, ecx
add dword [0x448904], eax
lea edx, [ebp - 0x14]
push edx
mov ecx, ebx
call fcn.00419700
fld dword [0x4835f8]
fadd dword [0x4862d0]
fmul qword [0x471a48]
fstp qword [0x471a48]
inc dword [0x449814]
mov eax, dword [0x449814]
imul eax, eax, 0x9a075344
xor eax, 0x164b2bb7
cmp eax, 0x5011128c
jl 0x42292a
fld qword [0x45e4d8]
fsub qword [0x46ecf0]
fld dword [0x483f4c]
fmul dword [0x48048c]
fadd dword [0x48d2dc]
fld dword [0x48048c]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x48048c]
fxch st(2)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x4228dd
dec dword [0x4469ec]
mov cx, word [0x47c8b0]
mov edx, dword [0x4469ec]
movsx eax, cx
add edx, eax
mov word [0x47c8b0], dx
jmp 0x42292c
fld dword [0x482e38]
fmul dword [0x480cb4]
fstp dword [0x482e38]
jmp 0x42292c
mov ax, word [0x4785b0]
mov ecx, dword [0x43ebb0]
movzx edx, byte [ebp + esi - 8]
cwde
or ecx, eax
mov eax, dword [ebp - 0xc]
or ecx, 0x41004200
mov dword [0x43ebb0], ecx
movzx ecx, byte [edx + eax]
push ecx
mov ecx, ebx
call fcn.0042c770
add dword [0x43e950], 0x8000091
fld1
fld dword [0x48fdd8]
fmul dword [0x482d30]
fld dword [0x48d7c0]
fsub dword [0x489304]
fadd qword [0x46e528]
fld dword [0x48d7c0]
fsub st(3)
fstp dword [0x48d7c0]
fld dword [0x482d30]
fsub st(3)
fstp dword [0x482d30]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422988
movzx edx, word [0x47d572]
and edx, 0x6c29af5e
mov word [0x47d572], dx
jmp 0x4229a2
fld dword [0x489874]
fld dword [0x4892dc]
fmul dword [0x49129c]
fsubp st(1)
fstp dword [0x489874]
fld dword [0x489c60]
inc esi
fmul dword [0x48c65c]
fadd qword [0x45b660]
fmul dword [0x47f47c]
fstp dword [0x47f47c]
cmp esi, 4
jne 0x4227c0
fld dword [0x48698c]
xor edi, edi
fld dword [0x488b1c]
lea esi, [edi + 1]
fmul dword [0x481cf8]
fadd dword [0x481b88]
fsubp st(1)
fstp dword [0x48698c]
fld dword [0x481b88]
fsub st(1)
fstp dword [0x481b88]
fld dword [0x481cf8]
fadd st(1)
fstp dword [0x481cf8]
fld dword [0x4897e0]
fsub dword [0x485888]
fmul dword [0x480a6c]
fstp dword [0x480a6c]
fld dword [0x485888]
fsub st(1)
fstp dword [0x485888]
cmp dword [ebp + 0xc], 0
mov eax, dword [0x44acb8]
mov dword [0x44dc70], eax
jne 0x4225e1
fld dword [0x488f48]
fmul dword [0x48e1c0]
fstp dword [0x488f48]
test edi, edi
je 0x422f8d
fld dword [0x4879f4]
fsub dword [0x48e408]
fadd dword [0x487520]
fadd dword [0x484624]
fstp dword [0x484624]
fld qword [0x4560e0]
fmul qword [0x473108]
fld dword [0x489df4]
fadd qword [0x45e1d0]
fld qword [0x45e1d0]
fadd st(3)
fstp qword [0x45e1d0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x422acb
fld dword [0x489d5c]
fadd dword [0x490e54]
fstp dword [0x489d5c]
fld dword [0x490e54]
fsub st(1)
fstp dword [0x490e54]
cmp edi, 3
jge 0x422b21
mov esi, 3
fstp st(0)
sub esi, edi
push esi
lea eax, [ebp + edi - 4]
push 0
push eax
call fcn.004102d0
add esp, 0xc
mov eax, 0xe299e69a
mov edi, edi
mov ecx, dword [0x44c318]
imul ecx, ecx, 0x26375997
mov dword [0x44c318], ecx
fld dword [0x4841dc]
fsub dword [0x48bad0]
fstp qword [0x46bd48]
xor dword [0x440104], eax
sub esi, 1
jne 0x422af0
fld1
add dword [0x440e98], 0xe565530c
fld dword [0x487610]
fsub dword [0x48f9f4]
mov dl, byte [ebp - 4]
fld dword [0x48bb18]
shr dl, 2
fsub qword [0x46a4d8]
mov byte [ebp - 8], dl
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x422b66
fld dword [0x490ed0]
fmul dword [0x48942c]
fstp dword [0x490ed0]
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
or dword [0x44c7e8], 0xa3be0ddd
mov dx, word [0x479160]
mov eax, dword [0x4431f8]
movzx ecx, byte [ebp - 3]
shr cl, 4
add byte [ebp - 7], cl
movsx ecx, dx
not eax
sub eax, ecx
and dword [0x449c74], eax
inc word [0x479160]
movzx eax, byte [ebp - 3]
fld dword [0x48fd54]
fld dword [0x48b5f0]
fmul qword [0x45deb8]
and al, 0xf
add al, al
add al, al
fmul qword [0x455bc0]
mov byte [ebp - 6], al
fsubp st(1)
fstp dword [0x48fd54]
fadd qword [0x45deb8]
movzx ecx, byte [ebp - 2]
shr cl, 6
add byte [ebp - 6], cl
fstp qword [0x45deb8]
mov edx, dword [0x43f6b4]
movzx eax, byte [ebp - 2]
imul edx, edx, 0x7e998221
mov dword [0x43f6b4], edx
mov cx, word [0x47c08a]
movsx edx, cx
shl edx, 4
sub edx, 0x3d28c8f4
and al, 0x3f
xor edx, 0xf1043130
cmp edx, 0x7f5fffe9
mov byte [ebp - 5], al
jge 0x422c37
fld dword [0x487ebc]
fadd qword [0x46f070]
fstp qword [0x46f070]
mov ax, word [0x4785f8]
movsx ecx, ax
imul ecx, ecx, 0x4becc513
mov eax, 0x60913c6f
sub eax, ecx
add dword [0x44dd64], eax
or ebx, 0xffffffff
add dword [0x4420b0], ebx
mov dx, word [0x4775e2]
mov eax, dword [0x4420b0]
movsx ecx, dx
imul eax, ecx
imul eax, eax, 0x26ba8f94
sub dword [0x44e108], eax
add word [0x4775e2], bx
xor esi, esi
test edi, edi
jl 0x422e1a
jmp 0x422c90
and dword [0x44cab4], 0xa7dfad5c
cmp byte [ebp + 0x10], 0
je 0x422d54
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x422d54
add dword [0x43d7c8], 0x9c98587d
cmp al, 0x3e
jne 0x422d14
mov ax, word [0x475ed8]
movsx ecx, ax
mov eax, dword [0x43c060]
not eax
imul eax, ecx
mov ecx, dword [0x449f28]
imul ecx, eax
imul ecx, ecx, 0x829c71d7
mov word [0x475ed8], cx
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x10]
push edx
call fcn.00419700
mov eax, dword [0x44a690]
not eax
xor eax, 0xe1b49eb5
add dword [0x44bb10], eax
and dword [0x44a150], 0xfdfdebfd
jmp 0x422d8b
fld dword [0x48e6f0]
mov ecx, dword [ebp + 0x14]
fmul dword [0x48cf54]
lea eax, [ebp - 0x14]
push eax
fsub dword [0x48e19c]
fadd dword [0x480188]
fstp dword [0x480188]
call fcn.00419700
add dword [0x449894], 0x7cf8f33e
and dword [0x44a150], 0xfdfdebfd
jmp 0x422d8b
mov eax, dword [0x44411c]
mov ecx, dword [0x440c2c]
or eax, ecx
or eax, 0xbcf51757
sub dword [0x4476b4], eax
movzx edx, byte [ebp + esi - 8]
mov eax, dword [ebp - 0xc]
movzx ecx, byte [edx + eax]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0042c770
or dword [0x43e524], 0x74c4d124
add dword [0x44a590], 0xab30cca2
mov edx, dword [0x43cfd0]
or edx, 0x1c5e4a36
inc esi
cmp edx, 0xec34a510
jne 0x422dca
fld dword [0x48bd70]
fmul dword [0x489728]
fadd qword [0x4549a8]
fmul qword [0x460488]
fstp qword [0x460488]
jmp 0x422de8
mov eax, dword [0x4452b8]
mov ecx, dword [0x43c034]
movzx edx, word [0x4755f6]
imul eax, ecx
xor edx, eax
mov word [0x4755f6], dx
add dword [0x4420b0], ebx
mov ax, word [0x4775e2]
movsx ecx, ax
mov eax, dword [0x4420b0]
imul eax, ecx
imul eax, eax, 0x26ba8f94
sub dword [0x44e108], eax
add word [0x4775e2], bx
cmp esi, edi
jle 0x422c90
cmp edi, 3
fld dword [0x48e0f8]
fstp dword [0x4919a4]
jge 0x422f77
mov esi, 3
sub esi, edi
mov edi, 0xfe72dffe
jmp 0x422e40
mov cx, word [0x47972a]
movsx edx, cx
xor edx, 0x76d85aab
mov dword [0x44e7ec], edx
mov eax, dword [0x446d2c]
add eax, dword [0x44ad18]
cmp eax, 0x6e55fcd0
jl 0x422ea0
fld dword [0x486798]
fld dword [0x480c90]
fcompi st(1)
fstp st(0)
jbe 0x422e90
movzx ecx, word [0x4759d6]
imul ecx, ecx, 0x17d5adee
mov word [0x4759d6], cx
jmp 0x422ea0
mov eax, dword [0x43e0b0]
xor eax, 0x72af5c16
and dword [0x446194], eax
cmp byte [ebp + 0x10], 0
je 0x422ee3
mov edx, dword [0x4447c8]
add dword [0x4447c8], ebx
cmp edx, 0xca7b5631
jle 0x422ecc
fld dword [0x48ab18]
fadd qword [0x474ae8]
fstp dword [0x48ab18]
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.00419700
mov dword [0x4496e0], edi
jmp 0x422f56
inc dword [0x43f58c]
mov eax, dword [0x43f58c]
mov ecx, dword [0x43f758]
and eax, 0xe9133852
sub ecx, 0x622aa8a9
cmp ecx, eax
je 0x422f28
add dword [0x449774], ebx
mov dx, word [0x47cce2]
mov ecx, dword [0x449774]
movsx eax, dx
or ecx, eax
or ecx, 0x32c851c9
mov word [0x47cce2], cx
mov ecx, dword [ebp + 0x14]
push 0x3d
call fcn.0042c770
fld dword [0x488890]
fmul qword [0x468668]
fstp dword [0x486544]
fld qword [0x468668]
fadd qword [0x43aeb8]
fstp qword [0x468668]
mov eax, dword [0x44ba08]
not eax
imul eax, eax, 0xd83ce270
xor eax, 0xa687adeb
sub dword [0x4442e4], eax
sub esi, 1
jne 0x422e40
movzx edx, word [0x477aa6]
add edx, 0x165936e9
mov word [0x477aa6], dx
jmp 0x422f92
fstp st(0)
or ebx, 0xffffffff
mov eax, dword [0x44a240]
imul eax, eax, 0x31b21668
add eax, 0x360543f3
cmp eax, 0xf4a83f16
jg 0x422fe8
fld dword [0x48bb08]
fmul dword [0x48479c]
fsub dword [0x48ddfc]
fld qword [0x451950]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x422fe1
add dword [0x449f24], ebx
mov eax, dword [0x449f24]
or eax, 0xeb354561
add dword [0x445510], eax
jmp 0x422fe8
mov cx, word [0x47b644]
mov edx, dword [ebp - 0xc]
push edx
push 0x41
call fcn.0041dc90
fld qword [0x468f48]
fsub qword [0x46d530]
add esp, 8
pop edi
pop esi
fadd qword [0x468188]
pop ebx
fld dword [0x4804e8]
fmul qword [0x46ba48]
fsub qword [0x45c260]
fcompi st(1)
fstp st(0)
jbe 0x423049
fld dword [0x486c20]
fmul qword [0x466450]
fstp qword [0x466450]
fld dword [0x486c20]
fsub qword [0x43aeb8]
fstp dword [0x486c20]
jmp 0x423053
add dword [0x4464ac], 0xb2b1bbae
push 4
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.004102d0
mov ecx, dword [0x44e580]
not ecx
add esp, 0xc
cmp ecx, 0xcfc60e11
jl 0x42307d
xor dword [0x44db9c], 0x7a582f8f
push 4
lea edx, [ebp - 0x14]
push 0
push edx
call fcn.004102d0
xor dword [0x4427a8], 0xfb0ebcaf
push 4
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.004102d0
mov cx, word [0x477bf0]
movsx edx, cx
mov eax, 0x78be745
sub eax, edx
add esp, 0x18
cmp eax, 0x80d11cc
jg 0x4230c6
add dword [0x43fe94], 0xc53d85f6
mov esp, ebp
pop ebp
ret