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

Disassembly:
push ebp
mov ebp, esp
movzx eax, word [0x43a8e2]
sub esp, 0x18
xor eax, 0xcdc201fd
mov word [0x43a8e2], ax
movzx eax, word [0x438ac8]
add eax, 0x17931255
mov word [0x438ac8], ax
xor dword [0x435510], 0x1655470c
mov eax, dword [0x433f80]
not eax
and eax, 0xeffeffd7
or eax, 0xcffef157
xor dword [0x437e64], eax
movsx eax, word [0x438be4]
push ebx
sar eax, 2
push esi
sub eax, 0x13239514
xor esi, esi
push edi
cmp eax, 0x3e2642e7
je 0x416038
movsx ecx, word [0x43a0ea]
mov eax, dword [0x4359d4]
not ecx
not eax
and eax, ecx
add dword [0x436d94], eax
add dword [0x434ec8], 0x73e5d6f9
push 0x41
push 0x13c2
call fcn.0041a805
add dword [0x436798], 0x4280001
push 4
push 0x3c1a
mov dword [ebp - 0xc], eax
call fcn.0041a805
mov edx, dword [0x4383e0]
mov edi, eax
movsx ecx, word [0x439a96]
lea eax, [ebp - 0x10]
push edi
push eax
lea ecx, [ecx + edx*8]
movsx edx, word [0x4398c4]
or edx, ecx
add dword [0x435870], edx
call fcn.00425eaf
movsx eax, word [0x43a57a]
add esp, 0x18
cmp eax, 0xd4038d31
jne 0x4160b2
movsx eax, word [0x43a52a]
sar eax, 1
xor dword [0x4376fc], eax
push 4
push 0x3554
call fcn.0041a805
add dword [0x435d48], 0xbfec0000
mov ebx, eax
push edi
push 4
call fcn.00418251
mov edx, dword [0x436338]
add esp, 0x10
mov ecx, dword [0x436d48]
mov eax, dword [0x4348d0]
sar edx, 9
xor eax, 0x605959e7
add ecx, edx
cmp eax, ecx
je 0x41611b
movsx ecx, word [0x438bba]
movsx eax, word [0x43aaa2]
not ecx
add eax, ecx
mov ecx, dword [0x434ac4]
add ecx, eax
mov word [0x43aaa2], cx
dec dword [0x434ac4]
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00425eaf
movzx eax, word [0x438bc6]
imul eax, eax, 0xb5893483
push 4
push 0x2144
mov word [0x438bc6], ax
call fcn.0041a805
movsx edx, word [0x43a880]
add esp, 0x10
mov ecx, dword [0x436954]
sub edx, 0x4100c7c
and edx, 0x8543427
add ecx, 0x70129aaa
inc word [0x43a880]
mov edi, eax
dec dword [0x436954]
cmp ecx, edx
jge 0x416199
mov eax, dword [0x435558]
or eax, 0xd1ad58f0
cmp eax, 0xbb79a4ae
je 0x416199
mov eax, dword [0x435054]
mov eax, dword [0x438088]
mov eax, dword [0x437fec]
push ebx
push 4
call fcn.00418251
add dword [0x438318], 0x40129000
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.00425eaf
mov eax, dword [0x4384b8]
add esp, 0x10
imul ecx, eax, 0x85e9a28d
mov eax, dword [0x437508]
dec dword [0x437508]
cmp ecx, eax
jg 0x4161de
and dword [0x4375ac], 0xba464f0d
jmp 0x416214
mov ecx, dword [0x435774]
mov eax, dword [0x434c00]
not ecx
sub ecx, eax
movsx eax, word [0x439d2e]
and eax, ecx
inc word [0x439d2e]
inc dword [0x434c00]
cmp eax, 0xb4f4d4bf
jl 0x416214
xor dword [0x434888], 0xfe1e0341
push edi
push 4
call fcn.00418251
or dword [0x434c10], 0xf7b65d15
mov edi, dword [ebp + 0xc]
pop ecx
pop ecx
push 3
pop ebx
jmp 0x416645
imul eax, dword [0x438198], 0x7898a04a
dec edi
mov dword [ebp + 0xc], edi
mov dword [0x438198], eax
cmp dword [0x4343e8], 0xff7ffffd
jge 0x416269
dec dword [0x435c48]
mov eax, dword [0x435c48]
imul eax, eax, 0x711b1777
mov word [0x43aeba], ax
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp + esi - 4], al
imul eax, dword [0x433f8c], 0x18dafe97
inc esi
mov dword [0x433f8c], eax
movzx eax, word [0x43aca0]
and eax, 0x7ff967fb
inc ecx
mov word [0x43aca0], ax
mov dword [ebp + 8], ecx
mov dword [0x437938], 0x5a27a8a
cmp esi, ebx
jne 0x41663b
mov ax, word [0x43aa54]
movsx ecx, ax
mov eax, dword [0x4361f4]
sub ecx, eax
mov al, byte [ebp - 4]
sub ecx, 0x56795bdf
shr al, 2
mov byte [ebp - 8], al
mov word [0x43aa54], cx
mov eax, dword [0x438578]
sub eax, 0x2450808
mov word [0x4396ba], ax
dec dword [0x438578]
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
xor dword [0x435f38], 0xe0da254
mov al, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
mov eax, dword [0x4369bc]
shl eax, 7
add eax, 0x3539f7f4
xor eax, 0x22a9c286
sub dword [0x437e00], eax
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
add dword [0x4341c0], 0x5750248
mov al, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
dec word [0x43ac94]
mov cx, word [0x43ac94]
movsx eax, word [0x43a59c]
mov edx, dword [0x4342f8]
shl eax, 3
imul edx, eax
movsx eax, cx
xor edx, eax
dec dword [0x4342f8]
cmp edx, 0x774ec325
jg 0x416382
mov eax, dword [0x434bf4]
sar eax, 3
add eax, 0x23586744
mov dword [0x435cd8], eax
jmp 0x4163a1
mov ecx, dword [0x4366e4]
mov eax, dword [0x43596c]
sub ecx, 0x1bb31caf
xor ecx, 0xbd063562
imul eax, ecx
mov dword [0x43596c], eax
mov al, byte [ebp - 2]
xor esi, esi
and al, 0x3f
mov byte [ebp - 5], al
and dword [0x4374e4], 0x3ffae675
dec word [0x43a092]
mov ax, word [0x43a092]
mov ecx, dword [0x438190]
cwde
imul eax, eax, 0x4f871e8e
sub ecx, eax
dec dword [0x438190]
cmp ecx, 0x69112cb0
je 0x41640b
movsx eax, word [0x439ec2]
cmp eax, 0x3c1cb172
jg 0x416429
mov eax, dword [0x4344f0]
mov ecx, 0x9b283d5c
sub ecx, eax
movzx eax, word [0x43af56]
imul eax, ecx
mov word [0x43af56], ax
jmp 0x416429
movsx ecx, word [0x43a460]
mov eax, dword [0x4359e8]
and ecx, 0x40148640
or eax, ecx
or eax, 0x240941b3
mov dword [0x4359e8], eax
mov bl, byte [ebp + 0x10]
mov edi, dword [ebp - 0xc]
movsx ecx, word [0x43aa48]
mov eax, dword [0x436394]
and ecx, 0x3abae185
or eax, ecx
cmp eax, 0x4100808
jl 0x416454
mov dword [0x43747c], 0x51290005
test bl, bl
je 0x4164fd
mov dl, byte [ebp + esi - 8]
cmp dl, 0x3d
jbe 0x4164fd
movsx eax, word [0x43a78a]
mov ecx, dword [0x4369a4]
sar eax, 3
shl ecx, 9
xor ecx, eax
movzx eax, word [0x43a5ea]
xor ecx, 0xdc0f907b
and eax, ecx
mov word [0x43a5ea], ax
cmp dl, 0x3e
jne 0x4164bf
add dword [0x434df4], 0x27a3d1ef
lea eax, [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.00405071
imul eax, dword [0x43461c], 0x982fd610
mov dword [0x43461c], eax
jmp 0x4164eb
mov ax, word [0x43a5a6]
mov ecx, dword [0x4363c8]
cwde
xor ecx, eax
lea eax, [ebp - 0x14]
mov word [0x43a5a6], cx
mov ecx, dword [ebp + 0x14]
push eax
call fcn.00405071
add dword [0x4365f8], 0x69a5e300
mov eax, dword [0x43608c]
or eax, 0xf024efe8
add dword [0x43861c], eax
jmp 0x416563
mov eax, dword [0x435bbc]
mov ecx, dword [ebp + 0x14]
xor eax, 0xda205243
sub dword [0x435490], eax
inc dword [0x435bbc]
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + edi]
push eax
call fcn.004107f5
mov ecx, dword [0x4368f4]
mov eax, dword [0x43674c]
add eax, ecx
cmp eax, dword [0x43879c]
jle 0x416563
dec dword [0x435468]
mov eax, dword [0x435468]
imul ecx, dword [0x436670], 0xb993e01f
xor ecx, eax
cmp ecx, 0xfffd6cf7
je 0x416563
add dword [0x4387e0], 0x67dd47c5
imul eax, dword [0x435a94], 0x17d52db
or eax, 0xf8a46472
cmp eax, 0x66e8adf7
jne 0x41658a
imul eax, dword [0x435f20], 0x99786228
mov dword [0x435f20], eax
jmp 0x41659d
movzx eax, word [0x438d98]
imul eax, eax, 0x580b7a1
mov word [0x438d98], ax
mov eax, dword [0x43686c]
inc esi
sar eax, 4
imul eax, eax, 0xc85d9109
cmp eax, 0x27c9de90
jl 0x416603
dec dword [0x435b68]
mov ecx, dword [0x435b68]
mov eax, dword [0x436c90]
add eax, 0x6dfbec0a
add eax, ecx
cmp eax, 0x4d48b423
jge 0x4165f7
inc dword [0x43892c]
mov edx, dword [0x43892c]
mov ax, word [0x43aeb4]
mov ecx, dword [0x4372d8]
cwde
add ecx, eax
add ecx, edx
mov dword [0x4372d8], ecx
jmp 0x41660d
add dword [0x43520c], 0xe0c3211e
jmp 0x41660d
and dword [0x433ea0], 0x174d0
cmp esi, 4
jne 0x41642f
add dword [0x435c78], 0x1fba7fbd
xor esi, esi
mov eax, dword [0x435218]
mov edi, dword [ebp + 0xc]
sar eax, 0xa
and eax, 0x1987abe3
add dword [0x4384dc], eax
push 3
pop ebx
xor dword [0x436fd8], 0x210bbfb5
test edi, edi
jne 0x416233
and dword [0x4387b8], 0x76cd1888
test esi, esi
je 0x416adc
or dword [0x435c08], 0x6fa3b81
imul eax, dword [0x435208], 0x36ba9114
mov dword [0x435208], eax
cmp esi, ebx
jge 0x4166d3
mov edi, ebx
lea eax, [ebp - 4]
sub edi, esi
add eax, esi
push edi
push 0
push eax
call fcn.004106af
add esp, 0xc
movzx eax, word [0x439b26]
and eax, 0xcdddf637
mov word [0x439b26], ax
mov ecx, dword [0x436970]
movzx eax, word [0x43ab04]
shl ecx, 2
xor ecx, 0xb5f3a7e5
or eax, ecx
mov word [0x43ab04], ax
imul eax, dword [0x436ba0], 0xef31f2c9
mov dword [0x436ba0], eax
dec edi
jne 0x416691
mov eax, dword [0x434a8c]
or eax, dword [0x433e5c]
mov dword [0x433e5c], eax
inc dword [0x434a8c]
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
inc dword [0x437dc4]
mov eax, dword [0x437dc4]
cmp eax, 0x9d1052c5
jge 0x41671e
movsx eax, word [0x439f56]
imul ecx, eax, 0x6254481c
mov eax, dword [0x4355c8]
sub ecx, eax
or dword [0x437124], ecx
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
inc dword [0x4368f4]
mov eax, dword [0x4368f4]
cmp eax, 0xa9585501
je 0x416757
mov ax, word [0x439d6c]
mov ecx, dword [0x436f14]
cwde
xor ecx, eax
xor ecx, 0x7bad02d3
mov word [0x439d6c], cx
mov al, byte [ebp - 3]
xor edi, edi
shr al, 4
add byte [ebp - 7], al
add dword [0x4351a8], 0x80212242
mov cl, byte [ebp - 3]
mov al, byte [ebp - 2]
and cl, 0xf
shr al, 6
shl cl, 2
mov byte [ebp - 6], cl
add cl, al
mov dword [0x434ae8], 0x8b4e95a
mov byte [ebp - 6], cl
dec dword [0x435db4]
mov ecx, dword [0x435db4]
mov eax, dword [0x436fd4]
sar eax, 9
sub ecx, eax
mov bl, byte [ebp + 0x10]
mov eax, dword [0x437040]
add eax, 0x768d9ea6
add eax, ecx
mov ecx, 0xe638f46d
mov dword [0x437040], eax
mov al, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
movsx eax, word [0x43aef0]
sub ecx, eax
add dword [0x435ac4], ecx
mov eax, dword [0x43494c]
imul eax, eax, 0xa71ed840
and dword [0x437810], eax
mov eax, dword [0x434678]
imul ecx, eax, 0x5a857db2
mov eax, dword [0x4350a4]
inc eax
add ecx, eax
movsx eax, word [0x43ac6c]
not eax
sub eax, 0x189414ac
dec dword [0x434678]
cmp eax, ecx
jl 0x416819
or dword [0x4347b4], 0xd693e990
cmp edi, esi
jg 0x416983
cmp dword [0x435c0c], 0xbe97a56
jg 0x416844
mov eax, dword [0x4364d4]
xor eax, 0x35a5a599
cmp eax, 0xbda1a006
jl 0x416844
dec dword [0x43434c]
test bl, bl
je 0x416914
mov al, byte [ebp + edi - 8]
cmp al, 0x3d
jbe 0x416914
add dword [0x433fd0], 0x27e5efff
mov ecx, dword [ebp + 0x14]
cmp al, 0x3e
jne 0x4168b1
and dword [0x435dcc], 0x63c3fd6b
lea eax, [ebp - 0x10]
push eax
call fcn.00405071
movsx ecx, word [0x439bfc]
movsx eax, word [0x43afbe]
sar ecx, 0xa
or ecx, 0xf5341c7f
dec word [0x43afbe]
cmp eax, ecx
jge 0x416906
mov eax, dword [0x4374b8]
imul eax, dword [0x435138]
mov dword [0x4374b8], eax
jmp 0x416906
mov eax, dword [0x433dc4]
not eax
add eax, 0x310c57c7
mov word [0x43a09e], ax
lea eax, [ebp - 0x14]
push eax
call fcn.00405071
mov eax, dword [0x434928]
mov ecx, 0x377ba4e1
sar eax, 1
sub ecx, eax
mov eax, dword [0x4360d4]
sub eax, 0x55503020
dec dword [0x4360d4]
cmp ecx, eax
jl 0x4168fa
add dword [0x436388], 0xc79c6766
jmp 0x416906
movsx eax, word [0x43914a]
mov dword [0x4376d0], eax
movsx eax, word [0x43a9c6]
mov dword [0x433fa4], eax
jmp 0x416945
add dword [0x435fc0], 0xfbe159fd
mov ecx, dword [ebp - 0xc]
movzx eax, byte [ebp + edi - 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.004107f5
movzx eax, word [0x43a3d2]
or eax, 0x49457790
mov word [0x43a3d2], ax
inc word [0x439dd4]
mov ax, word [0x439dd4]
imul ecx, dword [0x433dcc], 0x9030a8c3
cwde
cmp ecx, eax
jle 0x416973
movzx eax, word [0x43a74c]
xor eax, 0xd7db71cf
mov word [0x43a74c], ax
inc edi
and dword [0x4369e4], 0xa6420080
jmp 0x4167e4
xor dword [0x437650], 0xcd5171b5
push 3
pop ebx
cmp esi, ebx
jge 0x416a70
sub ebx, esi
inc dword [0x438124]
mov eax, dword [0x438124]
add eax, 0x6f9cf490
or eax, dword [0x4344f4]
cmp eax, 0x62f676a3
jle 0x4169e1
dec dword [0x437cb4]
mov eax, dword [0x437cb4]
mov ecx, dword [0x433fcc]
xor eax, 0x78a25c6b
shl ecx, 8
or ecx, eax
movzx eax, word [0x439ea2]
add eax, ecx
mov word [0x439ea2], ax
mov eax, dword [0x437174]
not eax
xor eax, 0x649aef4
and dword [0x437e2c], eax
cmp byte [ebp + 0x10], 0
je 0x416a32
movsx eax, word [0x43a758]
shl eax, 0xa
add eax, 0xad6eed5f
cmp dword [0x436c94], eax
jne 0x416a1a
and dword [0x435748], 0x97cfe6cc
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.00405071
and dword [0x434704], 0xd40e0b26
jmp 0x416a58
movzx eax, word [0x43ad2c]
mov ecx, dword [ebp + 0x14]
sub eax, 0x462aad35
mov word [0x43ad2c], ax
push 0x3d
call fcn.004107f5
add dword [0x436a68], 0x8d10a643
mov eax, dword [0x435f28]
imul eax, eax, 0xcbc8e96a
and dword [0x436cf8], eax
dec ebx
jne 0x41699a
dec dword [0x437f94]
mov eax, dword [0x437f94]
imul eax, eax, 0x9c7d822c
cmp eax, 0x483bfc52
jge 0x416ad2
movsx eax, word [0x439a18]
inc word [0x439a18]
cmp eax, 0x32c897ac
jne 0x416ac0
inc dword [0x434ce8]
mov eax, dword [0x434ce8]
movzx ecx, word [0x43a688]
or ecx, eax
or ecx, 0xaefd3f7f
mov word [0x43a688], cx
jmp 0x416adc
mov eax, dword [0x435144]
or eax, dword [0x434194]
mov dword [0x435144], eax
jmp 0x416adc
xor dword [0x4350e0], 0x7fd97bff
inc word [0x43a2d0]
mov ax, word [0x43a2d0]
movsx ecx, word [0x438d08]
cwde
imul ecx, eax
mov eax, dword [0x4373d4]
or eax, 0x9e07ea11
dec dword [0x4373d4]
cmp eax, ecx
jge 0x416b12
add dword [0x4381c4], 0x4104001f
push dword [ebp - 0xc]
push 0x41
call fcn.00418251
cmp dword [0x436534], 0xe56866ac
pop ecx
pop ecx
jl 0x416b34
add dword [0x435898], 0x78ca332a
push 4
xor ebx, ebx
lea eax, [ebp - 0x10]
push ebx
push eax
call fcn.004106af
inc word [0x439528]
movzx eax, word [0x439528]
imul ecx, eax, 0x6dbe4530
movzx eax, word [0x4397c0]
push 4
push ebx
or ecx, eax
lea eax, [ebp - 0x14]
mov word [0x4397c0], cx
push eax
call fcn.004106af
movsx ecx, word [0x438c8e]
movzx eax, word [0x438ba4]
or ecx, 0xcc5b1eed
and eax, ecx
mov word [0x438ba4], ax
lea eax, [ebp - 0x18]
push 4
push ebx
push eax
call fcn.004106af
movsx eax, word [0x43a122]
add esp, 0x24
shl eax, 3
xor eax, 0x779c6c17
sub dword [0x437580], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret