Function at 0x450430
Capabilities:
Encode data using base64

Disassembly:
mov eax, 0x23d0
call fcn.00561be0
mov ecx, dword [esp + 0x23d4]
mov al, byte [ecx + 0x80ac]
test al, al
push ebx
push ebp
mov ebp, dword [esp + 0x23e0]
push esi
push edi
je 0x450480
mov eax, dword [ecx + 0x80a8]
cmp dword [eax + 0x22c], 3
je 0x450480
mov byte [ecx + 0x80ac], 0
cmp dword [eax + 0x22c], 2
sete al
mov byte [ecx + 0x80ad], al
lea esp, [esp]
mov ecx, dword [esp + 0x23e4]
mov eax, dword [ecx + 0x80a8]
mov ecx, dword [eax + 0x27a38]
cmp ecx, dword [eax + 0x27a34]
je 0x450f66
mov edx, dword [eax + ecx*4 + 0x27a40]
mov edi, dword [eax + ecx*4 + 0x27e40]
inc ecx
and ecx, 0x800000ff
lea edx, [edx + eax + 0x7a34]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], edi
jns 0x4504cd
dec ecx
or ecx, 0xffffff00
inc ecx
mov dword [eax + 0x27a38], ecx
mov ecx, dword [esp + 0x23e4]
mov edx, dword [ecx + 0x90]
lea eax, [esp + 0x28]
push eax
push edx
call fcn.004cee70
mov ebx, 1
mov esi, eax
call fcn.00403230
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 2]
mov edi, dword [esp + 0x23e4]
mov eax, dword [edi + 0x90]
push ebx
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x24], ecx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [edi + 0x90]
lea ecx, [esp + 0x38]
push ecx
push edx
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
imul eax, eax, 0x43fd
sub eax, 0x53fd
cmp word [ecx], ax
jne 0x450480
mov edx, ecx
add edx, 2
xor ecx, ecx
mov cx, word [edx]
movzx esi, cx
add edx, 2
cmp esi, 0x4102
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
jg 0x4505ad
je 0x4505c5
cmp esi, 0x201f
jg 0x4505a0
je 0x4505c5
cmp esi, 0x1032
jl 0x45063f
cmp esi, 0x1033
jle 0x4505c5
jmp 0x45063f
cmp esi, 0x3432
je 0x4505c5
jmp 0x45063f
cmp esi, 0x4106
je 0x4505c5
cmp esi, 0x4410
je 0x4505c5
cmp esi, 0x6002
jne 0x45063f
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x23e4]
mov ecx, dword [eax + 0x80b0]
mov ebx, dword [esp + 0x1c]
push 0x2000
push edi
push edx
lea esi, [ebx - 4]
push ecx
lea ecx, [esp + 0x3f0]
mov eax, esi
call fcn.004c0580
mov eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
lea ecx, [eax + eax*2]
shl ecx, 2
xor edx, edx
add esp, 0x10
test ecx, ecx
setl dl
lea esi, [esp + 0x3e0]
dec edx
and ecx, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x10]
and ecx, 3
neg eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
lea eax, [ebx + eax*4]
mov dword [esp + 0x1c], eax
cmp esi, 0x2001
jg 0x45082a
je 0x45086f
cmp esi, 0x1079
jg 0x450683
je 0x45086f
mov eax, esi
sub eax, 0x1012
je 0x45086f
sub eax, 5
je 0x45086f
sub eax, 0x1a
je 0x45086f
jmp case.default.0x450acf
cmp esi, 0x1102
je 0x45086f
cmp esi, 0x1312
je 0x45086f
cmp esi, 0x1fff
jne case.default.0x450acf
mov edi, dword [esp + 0x23e4]
call fcn.00450120
test ebp, ebp
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
jne 0x450761
cmp eax, 0x20
jg 0x450726
je case.0x450737.4099
cmp eax, 0x10
ja case.0x450737.4099
movzx edx, byte [eax + 0x450f88]
jmp dword [edx*4 + 0x450f74]
push 0x12
jmp 0x450e65
mov esi, dword [0x8927a4]
add esi, 0x1a2a9
push 0x17
mov cl, 1
call fcn.00414670
jmp 0x450e6c
mov esi, dword [0x8927a4]
add esi, 0x1a2a0
push 0x18
mov cl, 1
call fcn.00414670
jmp 0x450e6c
push 0x30
jmp 0x450e65
sub eax, 0x1000
cmp eax, 0xf
ja case.0x450737.4099
movzx eax, byte [eax + 0x450fb0]
jmp dword [eax*4 + 0x450f9c]
push 0x31
jmp 0x450e65
push 0x32
jmp 0x450e65
push 0x33
jmp 0x450e65
push 0x34
jmp 0x450e65
push 0x35
jmp 0x450e65
sub eax, 0
je 0x45080e
dec eax
je 0x4507c1
dec eax
jne case.default.0x450acf
mov edx, dword [0x8927a4]
add edx, 0x1a2a0
push edx
push 0x19b
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x68]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
push 0x19e
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x68]
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.default.0x450acf
mov edx, dword [0x8927a4]
add edx, 0x1a2b9
push edx
push 0x19a
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x68]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
push 0x19e
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x68]
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.default.0x450acf
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x199
jmp 0x450a33
cmp esi, 0x2133
jg 0x450852
cmp esi, 0x2131
jge 0x45086f
mov eax, esi
sub eax, 0x2103
je 0x45086f
sub eax, 0xe
je 0x45086f
sub eax, 0x10
je 0x45086f
jmp case.default.0x450acf
mov eax, esi
sub eax, 0x400f
je 0x450ef4
sub eax, 0x2012
je 0x45086f
sub eax, 0x10
jne case.default.0x450acf
movzx eax, word [edx]
cmp eax, 0x2007
jg 0x450c37
cmp eax, 0x2005
jge case.0x4508a8.19
cmp eax, 0x20
jg 0x4509c3
je 0x450f5a
dec eax
cmp eax, 0x1d
ja case.default.0x450acf
movzx edx, byte [eax + 0x450fe0]
jmp dword [edx*4 + 0x450fc0]
test ebp, ebp
jne 0x4508c2
cmp cx, 0x1031
sete cl
push 4
jmp 0x450e67
push 0
push 0x19c
push 0x897640
call fcn.0044dea0
push eax
push 0x190
jmp 0x450a33
test ebp, ebp
jne 0x4508e9
push 3
jmp 0x450e65
push 0
push 0x19c
push 0x897640
call fcn.0044dea0
push eax
push 0x191
jmp 0x450a33
test ebp, ebp
jne 0x45091d
cmp cx, 0x1031
sete cl
push 0x16
call fcn.004145c0
jmp 0x450e6c
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x192
jmp 0x450a33
test ebp, ebp
jne 0x45094c
cmp cx, 0x1031
sete cl
push 5
jmp 0x450e67
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x193
jmp 0x450a33
test ebp, ebp
jne 0x45097b
cmp cx, 0x1031
sete cl
push 6
jmp 0x450e67
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x194
jmp 0x450a33
test ebp, ebp
jne 0x4509aa
cmp cx, 0x1031
sete cl
push 7
jmp 0x450e67
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x195
jmp 0x450a33
cmp eax, 0x1003
jg 0x450ac1
je 0x450aaa
cmp eax, 0x60
jg 0x450a6e
je 0x450a4a
cmp eax, 0x24
je 0x450a11
cmp eax, 0x30
jne case.default.0x450acf
test ebp, ebp
jne 0x4509f8
push 0x14
jmp 0x450e65
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x197
jmp 0x450a33
test ebp, ebp
jne 0x450a1c
push 0x5c
jmp 0x450e65
push 0
push 0x19c
push 0x897640
call fcn.0044dea0
push eax
push 0x123
push 0x897640
call fcn.0044dea0
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.default.0x450acf
test ebp, ebp
jne 0x450a55
push 0x15
jmp 0x450e65
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x198
jmp 0x450a33
sub eax, 0x1001
je 0x450a93
dec eax
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0xb
jmp 0x450e67
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0xa
jmp 0x450e67
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0xc
jmp 0x450e67
sub eax, 0x2001
cmp eax, 3
ja case.default.0x450acf
jmp dword [eax*4 + 0x451000]
test ebp, ebp
jne 0x450f43
cmp word [esp + 0x14], 0x1031
push 0xd
sete cl
call fcn.00414510
add esp, 4
push ebp
push 0x5f0a64
push 0x5ef1b8
push ebp
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x450e6f
lea esi, [esp + 0x48]
jmp 0x450c1a
test ebp, ebp
jne 0x450f43
cmp word [esp + 0x14], 0x1031
push 0xe
sete cl
call fcn.00414510
add esp, 4
push ebp
push 0x5f0a64
push 0x5ef1b8
push ebp
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x450e6f
lea esi, [esp + 0x50]
jmp 0x450c1a
test ebp, ebp
jne 0x450f43
cmp word [esp + 0x14], 0x1031
push 0xf
sete cl
call fcn.00414510
add esp, 4
push ebp
push 0x5f0a64
push 0x5ef1b8
push ebp
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x450e6f
lea esi, [esp + 0x20]
jmp 0x450c1a
test ebp, ebp
jne 0x450f43
cmp word [esp + 0x14], 0x1031
push 0x10
sete cl
call fcn.00414510
add esp, 4
push ebp
push 0x5f0a64
push 0x5ef1b8
push ebp
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x450e6f
lea esi, [esp + 0x58]
mov dl, 1
push 0
mov cl, dl
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
jmp 0x450e6f
cmp eax, 0x7004
jg 0x450da6
je 0x450d97
cmp eax, 0x5013
jg 0x450d1b
je 0x450d04
cmp eax, 0x5001
jg 0x450cc8
je 0x450ca2
cmp eax, 0x2008
je 0x450c8b
cmp eax, 0x3001
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x11
jmp 0x450e67
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x2b
jmp 0x450e67
test ebp, ebp
jne 0x450cb8
cmp cx, 0x1031
sete cl
push 0x1d
call fcn.00414510
add esp, 4
mov esi, dword [0x8926a0]
call fcn.004ff800
jmp case.default.0x450acf
sub eax, 0x5011
je 0x450ced
dec eax
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x1f
jmp 0x450e67
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x1e
jmp 0x450e67
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x20
jmp 0x450e67
cmp eax, 0x7001
jg 0x450d6b
je 0x450d5c
cmp eax, 0x6001
je 0x450d45
cmp eax, 0x7000
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
push 0x37
jmp 0x450e65
test ebp, ebp
jne 0x450f43
cmp cx, 0x1031
sete cl
push 0x21
jmp 0x450e67
test ebp, ebp
jne 0x450f43
push 0x38
jmp 0x450e65
sub eax, 0x7002
je 0x450d88
dec eax
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
push 0x3a
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x39
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x3b
jmp 0x450e65
cmp eax, 0x8001
jg 0x450e26
je 0x450e1a
cmp eax, 0x7007
jg 0x450df0
je 0x450de4
sub eax, 0x7005
je 0x450dd5
dec eax
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
push 0x3d
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x3c
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x3e
jmp 0x450e65
cmp eax, 0x7008
je 0x450e0e
cmp eax, 0x8000
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
push 0x40
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x3f
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x41
jmp 0x450e65
cmp eax, 0xf000
jg 0x450ecd
je 0x450e5b
sub eax, 0x8002
je 0x450e4d
dec eax
jne case.default.0x450acf
test ebp, ebp
jne 0x450f43
push 0x43
jmp 0x450e65
test ebp, ebp
jne 0x450f43
push 0x42
xor cl, cl
jmp 0x450e67
test ebp, ebp
jne 0x450f43
push 9
mov cl, 1
call fcn.00414510
add esp, 4
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
add esi, 0xfffffffc
mov eax, esi
mov ecx, 0x300
lea ebx, [esp + 0xe0]
call fcn.004bdb10
mov edi, dword [esp + 0x14]
cmp di, 0x1012
je 0x450eb9
cmp di, 0x1017
je 0x450eb9
cmp di, 0x1001
je 0x450eb9
mov ecx, dword [esp + 0x18]
push eax
push ecx
push 0x5931a8
call fcn.004bdcb0
add esp, 0xc
mov edx, dword [esp + 0x10]
push edx
push edi
push esi
call fcn.0040f870
add esp, 0xc
jmp 0x450480
cmp eax, 0xf001
jne case.default.0x450acf
test ebp, ebp
je 0x450e63
push 0
push 0x19d
push 0x897640
call fcn.0044dea0
push eax
push 0x196
jmp 0x450a33
mov esi, dword [esp + 0x23e4]
lea ecx, [esi + 0x80bc]
call fcn.0053f9d0
mov dword [esi + 0x4098], 6
mov word [esi + 0x9c], 0x2000
mov word [esi + 0x9e], 0xffff
mov ecx, dword [esi + 0x4098]
add ecx, 2
push esi
mov dword [esi + 0x4098], ecx
call fcn.00450320
test ebp, ebp
je 0x450e6f
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push eax
push esi
push 0x464
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x450480
push 0x45
mov cl, 1
call fcn.00414510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x23d0
ret 8