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

Disassembly:
sub esp, 0x22c
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10c], edx
mov dword [esp + 0x68], ecx
and dword [esp + 0x118], 0
mov dword [esp + 0x114], 0xf768fa
mov dword [esp + 0x90], 0xfd317
add dword [esp + 0x90], 0xffffc5b2
add dword [esp + 0x90], 0xffff527c
xor dword [esp + 0x90], 0xb876
mov dword [esp + 0x50], 0x4b2ae8
add dword [esp + 0x50], 0x4bc2
xor dword [esp + 0x50], 0x738c1878
add dword [esp + 0x50], 0xd9c3
xor dword [esp + 0x50], 0x73c94cdb
mov dword [esp + 0xd8], 0x8545f2
add dword [esp + 0xd8], 0xffffeccf
xor dword [esp + 0xd8], 0x880a5f
mov dword [esp + 0x88], 0x3c4905
shr dword [esp + 0x88], 4
add dword [esp + 0x88], 0xff86
xor dword [esp + 0x88], 0xabff0
mov dword [esp + 0x60], 0x44d1bc
xor dword [esp + 0x60], 0x810326b6
add dword [esp + 0x60], 0xb83b
add dword [esp + 0x60], 0xffff395b
xor dword [esp + 0x60], 0x814fcdd0
mov dword [esp + 0x58], 0x61c17b
xor dword [esp + 0x58], 0xd135a825
mov eax, dword [esp + 0x58]
mov esi, 0x2a971b8
push 0x6c
xor edx, edx
pop edi
div edi
push 0x38
mov dword [esp + 0x5c], eax
xor edx, edx
shr dword [esp + 0x5c], 0xd
xor dword [esp + 0x5c], 0x6db45
mov dword [esp + 0x50], 0xf531e4
imul eax, dword [esp + 0x50], 6
pop edi
push 0x3f
mov dword [esp + 0x50], eax
or dword [esp + 0x50], 0xe5860a3d
add dword [esp + 0x50], 0x7f90
xor dword [esp + 0x50], 0xe5b0d3d9
mov dword [esp + 0x20], 0xd5111d
add dword [esp + 0x20], 0xffffc5e7
or dword [esp + 0x20], 0x4c9d575e
add dword [esp + 0x20], 0x2b20
xor dword [esp + 0x20], 0x4cd6121c
mov dword [esp + 0x70], 0xd91318
imul eax, dword [esp + 0x70], 0x45
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
div edi
xor edx, edx
mov dword [esp + 0x70], eax
shl dword [esp + 0x70], 1
xor dword [esp + 0x70], 0x21edbf2
mov dword [esp + 0xa0], 0x5d4702
add dword [esp + 0xa0], 0xb537
imul eax, dword [esp + 0xa0], 0x50
pop edi
mov dword [esp + 0x9c], eax
xor dword [esp + 0x9c], 0x1d54c0cd
mov dword [esp + 0x24], 0xe8f42c
mov eax, dword [esp + 0x24]
div edi
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0x29a2
add dword [esp + 0x24], 0xfffff1b5
xor dword [esp + 0x24], 0x4ea8d
mov dword [esp + 0xd4], 0xd77e9
or dword [esp + 0xd4], 0x1332023a
xor dword [esp + 0xd4], 0x13376576
mov dword [esp + 0xac], 0x260832
add dword [esp + 0xac], 0x52b6
xor edx, edx
shr dword [esp + 0xac], 8
xor dword [esp + 0xac], 0xd26d2
mov dword [esp + 0x34], 0x9279a9
add dword [esp + 0x34], 0xffff91bc
imul eax, dword [esp + 0x34], 0x22
push 0x32
pop edi
mov dword [esp + 0x34], eax
or dword [esp + 0x34], 0x77bbf62b
xor dword [esp + 0x34], 0x77fac947
mov dword [esp + 0x8c], 0x9caa6d
shr dword [esp + 0x8c], 3
shl dword [esp + 0x8c], 7
xor dword [esp + 0x8c], 0x9c1834f
mov dword [esp + 0xdc], 0x88d159
xor dword [esp + 0xdc], 0x7f72832b
xor dword [esp + 0xdc], 0x7ff9200b
mov dword [esp + 0x94], 0xcd5998
xor dword [esp + 0x94], 0x561e6a7b
shl dword [esp + 0x94], 8
xor dword [esp + 0x94], 0xd3379a94
mov dword [esp + 0x3c], 0xb75933
xor dword [esp + 0x3c], 0x3a0b98f3
add dword [esp + 0x3c], 0xffff7f82
xor dword [esp + 0x3c], 0xbf878a8b
xor dword [esp + 0x3c], 0x8533fe94
mov dword [esp + 0x100], 0x7b4102
or dword [esp + 0x100], 0xf5d10a44
xor dword [esp + 0x100], 0xf5f91f76
mov dword [esp + 0x74], 0xe000cc
or dword [esp + 0x74], 0xff38739
shl dword [esp + 0x74], 2
xor dword [esp + 0x74], 0x1c627c28
xor dword [esp + 0x74], 0x23af0e1f
mov dword [esp + 0xbc], 0x41bbcd
add dword [esp + 0xbc], 0xbac7
add dword [esp + 0xbc], 0xdbcc
xor dword [esp + 0xbc], 0x4e20cb
mov dword [esp + 0xe4], 0x5a69c0
add dword [esp + 0xe4], 0xffffc3de
xor dword [esp + 0xe4], 0x59195b
mov dword [esp + 0xcc], 0xab68ba
or dword [esp + 0xcc], 0xcbcf69a5
xor dword [esp + 0xcc], 0xcbed7751
mov dword [esp + 0x84], 0xba9a0b
xor dword [esp + 0x84], 0x9cca13d7
imul eax, dword [esp + 0x84], 0x3d
mov dword [esp + 0x84], eax
xor dword [esp + 0x84], 0x46d44438
mov dword [esp + 0x5c], 0x50f6bc
add dword [esp + 0x5c], 0xffff3ce7
add dword [esp + 0x5c], 0xffff2790
imul eax, dword [esp + 0x5c], 0x6a
mov dword [esp + 0x5c], eax
xor dword [esp + 0x5c], 0x20d90945
mov dword [esp + 0xb4], 0xe37cfb
add dword [esp + 0xb4], 0xffffeef1
add dword [esp + 0xb4], 0xffff3cc1
xor dword [esp + 0xb4], 0xe67f57
mov dword [esp + 0x7c], 0x1fdb9d
shr dword [esp + 0x7c], 3
add dword [esp + 0x7c], 0x8dc3
xor dword [esp + 0x7c], 0xf18c3
mov dword [esp + 0xf8], 0x282b30
mov eax, dword [esp + 0xf8]
div edi
mov dword [esp + 0xf8], eax
xor dword [esp + 0xf8], 0x8d3a0
mov dword [esp + 0x14], 0x8f44ed
add dword [esp + 0x14], 0xffff08af
or dword [esp + 0x14], 0xcf3743d
imul eax, dword [esp + 0x14], 0x16
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x1dfae824
mov dword [esp + 0xec], 0xfb0aa2
or dword [esp + 0xec], 0x81cab166
xor dword [esp + 0xec], 0x81fc3ee1
mov dword [esp + 0x44], 0xd55cdf
mov eax, dword [esp + 0x44]
push 0x70
xor edx, edx
pop edi
div edi
push 0x50
mov dword [esp + 0x48], eax
xor edx, edx
add dword [esp + 0x48], 0x165a
shl dword [esp + 0x48], 1
xor dword [esp + 0x48], 0x2fd86
mov dword [esp + 0x58], 0xcfcb93
imul eax, dword [esp + 0x58], 0x73
pop edi
push 0x62
mov dword [esp + 0x58], eax
add dword [esp + 0x58], 0xffff7636
mov eax, dword [esp + 0x58]
div edi
xor edx, edx
mov dword [esp + 0x58], eax
xor dword [esp + 0x58], 0x1202d3f
mov dword [esp + 0x30], 0x8ce1d7
imul eax, dword [esp + 0x30], 0x34
pop edi
push 0x43
mov dword [esp + 0x30], eax
add dword [esp + 0x30], 0xffff23e1
mov eax, dword [esp + 0x30]
div edi
xor edx, edx
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x4ce195
mov dword [esp + 0x2c], 0x4d9ea3
add dword [esp + 0x2c], 0x9177
imul eax, dword [esp + 0x2c], 0x7f
pop edi
mov dword [esp + 0x28], eax
imul eax, dword [esp + 0x28], 0x5d
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x175828a1
mov dword [esp + 0xfc], 0xe96b31
imul eax, dword [esp + 0xfc], 0x72
mov dword [esp + 0xfc], eax
xor dword [esp + 0xfc], 0x67f8a117
mov dword [esp + 0x20], 0x5ff62e
shl dword [esp + 0x20], 0xa
add dword [esp + 0x20], 0x5800
xor dword [esp + 0x20], 0x9972f88
xor dword [esp + 0x20], 0x76426b92
mov dword [esp + 0x18], 0xa32c90
xor dword [esp + 0x18], 0xbf39720a
xor dword [esp + 0x18], 0x1fab6343
or dword [esp + 0x18], 0x63fa4d22
xor dword [esp + 0x18], 0xe3f91a82
mov dword [esp + 0xd0], 0x69fb13
add dword [esp + 0xd0], 0xffffd2c7
xor dword [esp + 0xd0], 0x6127ff
mov dword [esp + 0x104], 0x218f32
or dword [esp + 0x104], 0xbdeefc78
xor dword [esp + 0x104], 0xbde28730
mov dword [esp + 0xf4], 0xf0901d
shl dword [esp + 0xf4], 2
xor dword [esp + 0xf4], 0x3c28813
mov dword [esp + 0x30], 0xa402d5
imul eax, dword [esp + 0x30], 0x4d
mov dword [esp + 0x30], eax
shr dword [esp + 0x30], 9
add dword [esp + 0x30], 0x4738
xor dword [esp + 0x30], 0x181cfa
mov dword [esp + 0x80], 0xdf3db6
or dword [esp + 0x80], 0x5b526342
mov eax, dword [esp + 0x80]
div edi
mov dword [esp + 0x80], eax
xor dword [esp + 0x80], 0x157433c
mov dword [esp + 0xa4], 0xe5214e
imul eax, dword [esp + 0xa4], 0x64
mov dword [esp + 0xa4], eax
add dword [esp + 0xa4], 0x7f16
xor dword [esp + 0xa4], 0x5986c00d
mov dword [esp + 0x48], 0xe3fc2b
xor dword [esp + 0x48], 0x68d85da5
xor edx, edx
xor dword [esp + 0x48], 0x6a2e2b8f
mov eax, dword [esp + 0x48]
push 0x7a
pop edi
div edi
push 0x71
mov dword [esp + 0x4c], eax
xor edx, edx
xor dword [esp + 0x4c], 0x268a9
mov dword [esp + 0x44], 0xb15b6b
mov eax, dword [esp + 0x44]
pop edi
div edi
push 0x7e
mov dword [esp + 0x44], eax
xor edx, edx
xor dword [esp + 0x44], 0x3f2a7be0
shl dword [esp + 0x44], 3
xor dword [esp + 0x44], 0xf95653e5
mov dword [esp + 0x3c], 0x3a8561
imul eax, dword [esp + 0x3c], 0x2b
pop edi
push 0x44
mov dword [esp + 0x3c], eax
add dword [esp + 0x3c], 0x1d14
imul eax, dword [esp + 0x3c], 0x23
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0x580d38ba
mov dword [esp + 0xc8], 0xbec2ea
mov eax, dword [esp + 0xc8]
div edi
xor edx, edx
mov dword [esp + 0xc8], eax
imul eax, dword [esp + 0xc8], 0xb
pop edi
push 3
mov dword [esp + 0xc8], eax
xor dword [esp + 0xc8], 0x1f50b0
mov dword [esp + 0x68], 0xcf94db
mov eax, dword [esp + 0x68]
div edi
xor edx, edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
pop edi
div edi
push 0x17
mov dword [esp + 0x68], eax
xor edx, edx
mov eax, dword [esp + 0x68]
pop edi
div edi
push 0xe
mov dword [esp + 0x68], eax
xor edx, edx
xor dword [esp + 0x68], 0x4077b
mov dword [esp + 0x10c], 0xf4b9ed
imul eax, dword [esp + 0x10c], 0x7b
pop edi
push 0xd
mov dword [esp + 0x10c], eax
xor dword [esp + 0x10c], 0x7590be5b
mov dword [esp + 0xb4], 0xfc97b
mov eax, dword [esp + 0xb4]
div edi
xor edx, edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
pop edi
div edi
mov dword [esp + 0xb0], eax
xor dword [esp + 0xb0], 0xc7c17
mov dword [esp + 0xe8], 0x57d807
add dword [esp + 0xe8], 0xe47
xor dword [esp + 0xe8], 0x567eba
mov dword [esp + 0xa8], 0xeb02a1
or dword [esp + 0xa8], 0xd435406c
shl dword [esp + 0xa8], 8
xor dword [esp + 0xa8], 0xff40d177
mov dword [esp + 0xa0], 0x3f1932
xor edx, edx
imul eax, dword [esp + 0xa0], 0x7a
push 0x48
pop edi
push 0x21
mov ebp, dword [esp + 0x110]
mov dword [esp + 0xa4], eax
xor dword [esp + 0xa4], 0xa557593f
xor dword [esp + 0xa4], 0xbb4aca2a
mov dword [esp + 0x74], 0xc0b8fa
add dword [esp + 0x74], 0xffff9966
shr dword [esp + 0x74], 2
shr dword [esp + 0x74], 0xc
xor dword [esp + 0x74], 0xb6db1
mov dword [esp + 0xbc], 0x87af72
add dword [esp + 0xbc], 0xffffcd4b
shr dword [esp + 0xbc], 3
xor dword [esp + 0xbc], 0x1e24fe
mov dword [esp + 0xf4], 0x5a8bbe
or dword [esp + 0xf4], 0x98decb14
xor dword [esp + 0xf4], 0x98d7eb38
mov dword [esp + 0x7c], 0xb2e458
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
shr dword [esp + 0x7c], 6
add dword [esp + 0x7c], 0xeb3e
xor dword [esp + 0x7c], 0x27d8d
mov dword [esp + 0xcc], 0x542d93
mov eax, dword [esp + 0xcc]
div edi
xor edx, edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0xcc], eax
imul eax, dword [esp + 0xcc], 0x57
pop edi
mov dword [esp + 0xc8], eax
xor dword [esp + 0xc8], 0x629f26
mov dword [esp + 0xc0], 0x37d848
shl dword [esp + 0xc0], 3
imul eax, dword [esp + 0xc0], 0x22
mov dword [esp + 0xc0], eax
xor dword [esp + 0xc0], 0x3b518193
mov dword [esp + 0x98], 0x85f739
or dword [esp + 0x98], 0x52791ee1
mov eax, dword [esp + 0x98]
div edi
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x98], eax
xor dword [esp + 0x98], 0x2875991
mov dword [esp + 0xe0], 0x49513d
shr dword [esp + 0xe0], 0xa
xor dword [esp + 0xe0], 0xa031f
mov eax, dword [esp + 0x10]
mov edx, 0xe7f73b1
cmp esi, 0x80d4f0f
jg 0x31ad98
je 0x31ad06
cmp esi, 0x5bbd59
je 0x31acd4
cmp esi, 0x817936
je 0x31aca3
cmp esi, 0x1060f53
je 0x31ac74
cmp esi, 0x2a971b8
je 0x31ac6a
cmp esi, 0x7e7ca72
jne 0x31af42
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
push 4
sub esp, 0xc
push 0x10
pop ecx
call fcn.0030e363
mov edi, eax
lea eax, [esp + 0x1cc]
push edi
push dword [esp + 0xe8]
mov edx, dword [esp + 0x3c]
push eax
push 0xb
pop ecx
call fcn.0031eb4e
mov esi, 0x80d4f0f
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
jmp 0x31abcc
mov esi, 0xe689a77
jmp 0x31abd1
mov eax, dword [esp + 0x84]
mov ecx, 0x4000
mov eax, dword [esp + 0xcc]
mov edi, ecx
push ecx
call fcn.0031f6a3
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
je 0x31afdb
mov esi, 0xfe050de
jmp 0x31ac61
push dword [ecx]
push ebx
push dword [esp + 0x110]
push dword [esp + 0x70]
mov edx, dword [esp + 0xd4]
mov ecx, dword [ecx + 4]
call fcn.0031291c
mov ecx, dword [esp + 0x78]
add esp, 0x10
mov esi, 0xd7ada16
add ebx, dword [ecx + 4]
jmp 0x31abc8
add edi, dword [ecx + 4]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
push ecx
mov ecx, edi
call fcn.0031f6a3
mov ebp, eax
mov esi, 0x80fc3d0
mov eax, dword [esp + 0x14]
test ebp, ebp
pop ecx
mov ecx, dword [esp + 0x68]
mov edx, 0xe7f73b1
cmovne esi, edx
jmp 0x31abd1
mov eax, dword [esp + 0xdc]
lea esi, [esp + 0x13c]
mov eax, dword [esp + 0x8c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0xac]
push 8
sub esp, 0xc
push 0x10
pop ecx
call fcn.0030e363
mov edx, eax
add esp, 0x10
test edx, edx
je 0x31ad51
mov ecx, edx
mov edi, esi
shr ecx, 1
lea esi, [esi + edx*2]
mov eax, 0x2d002d
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x100]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x94]
push 8
sub esp, 0xc
push 0x10
pop ecx
call fcn.0030e363
mov edi, eax
push edi
push dword [esp + 0xf8]
mov edx, dword [esp + 0xd4]
push esi
push 0xb
pop ecx
call fcn.0031eb4e
mov esi, 0x1060f53
jmp 0x31ac5a
cmp esi, 0x80fc3d0
je 0x31af19
cmp esi, 0xd7ada16
je 0x31af53
cmp esi, 0xe689a77
je 0x31aece
cmp esi, edx
je 0x31ae36
cmp esi, 0xfe050de
jne 0x31af42
push dword [esp + 0xf8]
mov ecx, 0x301114
push dword [esp + 0x80]
push dword [esp + 0xbc]
mov edx, dword [esp + 0x68]
call fcn.003057b4
add esp, 0xc
mov esi, eax
lea eax, [esp + 0x13c]
mov edx, 0xb32137d5
push eax
push esi
push edi
push dword [esp + 0x1c]
push 0x1a3
call fcn.0031016b
pop ecx
call eax
push dword [esp + 0x54]
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x28]
push esi
call fcn.0030c5d7
add esp, 0x18
mov esi, 0x5bbd59
jmp 0x31ac5d
push 0x301174
push dword [esp + 0x1c]
lea ebx, [edi + ebp]
push dword [esp + 0x28]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x11c], ebx
call fcn.0031ed8b
mov esi, eax
mov ecx, ebx
lea eax, [esp + 0x1c8]
sub ecx, ebp
push eax
push dword [esp + 0xb4]
lea eax, [esp + 0x150]
push dword [esp + 0x94]
push eax
lea eax, [esp + 0x138]
push eax
push esi
push ebp
push dword [esp + 0x58]
push dword [esp + 0x120]
push dword [esp + 0x134]
mov edx, dword [esp + 0x104]
call fcn.0031a156
push dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x80]
push esi
lea ebx, [eax + ebp]
call fcn.0030c5d7
add esp, 0x3c
mov esi, 0x817936
jmp 0x31ac5d
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0xd8]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x90]
push 1
sub esp, 0xc
push 8
pop ecx
call fcn.0030e363
mov edi, eax
lea eax, [esp + 0x12c]
push edi
push dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
push eax
push 9
pop ecx
call fcn.0031eb4e
mov esi, 0x7e7ca72
jmp 0x31ac5a
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x98]
push eax
call fcn.0030768d
pop ecx
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x10], eax
mov esi, 0xd6e37ad
mov edx, 0xe7f73b1
cmp esi, 0xd6e37ad
jne 0x31abd1
jmp 0x31afdb
push 0x3010b4
push dword [esp + 0xa4]
push dword [esp + 0xb0]
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xbc]
call fcn.0031ed8b
mov esi, eax
lea edx, [esp + 0x148]
mov eax, dword [esp + 0x11c]
mov ecx, ebx
sub eax, ebx
push eax
push esi
push dword [esp + 0x104]
push dword [esp + 0xd0]
push dword [esp + 0x8c]
call fcn.0030d0b0
push dword [esp + 0xe0]
mov edx, dword [esp + 0xec]
add ebx, eax
mov ecx, dword [esp + 0x9c]
push esi
call fcn.0030c5d7
mov eax, dword [esp + 0x134]
add esp, 0x28
sub ebx, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x22c
ret