Function at 0x22388f0
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x16c
push ebx
mov ebx, dword [esp + 0x178]
push ebp
push esi
push edi
mov edi, dword [esp + 0x180]
mov eax, dword [edi + 0x2bc]
mov esi, dword [eax + 4]
mov eax, dword [edi + 0x44]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], 0x20
mov dword [esp + 0x24], ebp
mov dword [edi + 0x48], ebp
je 0x223893d
push eax
call fcn.0226affd
add esp, 4
mov dword [edi + 0x44], ebp
push 0x20
push 0x20
lea ecx, [esp + 0x84]
push ecx
push ebx
mov dword [edi + 0x8c], ebp
mov word [esp + 0x8c], bp
call fcn.022531d0
lea edx, [esp + 0x8c]
push edx
push esi
mov ebx, eax
call fcn.0225ed50
add esp, 0x18
cmp eax, ebp
mov dword [esp + 0x30], eax
jne 0x2238985
mov dword [esp + 0x10], 0x48d
jmp 0x22392b3
push 0x52
push 0x52
push eax
mov dword [edi + 0x40], eax
call fcn.022601d0
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x22392b3
push 0x20
push str._.__r_n_t_
lea eax, [esp + 0x44]
push eax
push ebx
mov word [esp + 0x4c], bp
mov dword [esp + 0x28], ebx
call fcn.02253450
lea ecx, [esp + 0x4c]
push 0x2278004
push ecx
mov esi, eax
call fcn.0226b66a
add esp, 0x18
test eax, eax
je 0x22389e5
mov dword [esp + 0x10], 0x536
mov edi, dword [esp + 0x10]
jmp 0x22392a2
push 0x8000
call fcn.0226b115
add esp, 4
cmp eax, ebp
mov dword [esp + 0x14], eax
mov ebx, 0x446
je 0x2238a12
push 0x18
push 0x20
call fcn.0226b127
add esp, 8
cmp eax, ebp
mov dword [edi + 0x44], eax
jne 0x2238a16
mov dword [esp + 0x10], ebx
cmp word [esi], bp
je 0x22391b2
nop
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x22391b2
lea edx, [esp + 0xbc]
push edx
push esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], esi
call fcn.02253470
mov ecx, dword [esp + 0x38]
mov ebx, eax
lea eax, [esp + 0xc4]
push eax
push ecx
call fcn.0225ee50
add esp, 0x10
test eax, eax
mov dword [esp + 0x28], eax
jne 0x2238a72
mov dword [esp + 0x10], 0x41f
jmp 0x2239133
mov edx, dword [esp + 0x28]
mov edi, dword [edx + 0x80]
push ebx
xor ebp, ebp
call fcn.02208580
mov esi, eax
add esp, 4
xor ecx, ecx
mov cx, word [esi]
mov dword [esp + 0x18], esi
mov edx, 0x227839c
mov eax, 0x2b
mov dword [esp + 0x20], ecx
cmp cx, ax
je 0x2238af9
mov ax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x2238aa0
cmp cx, 0x3d
jne 0x22391aa
add esi, 2
push esi
mov ebp, 0x32
call fcn.02208580
mov ecx, eax
mov ax, word [ecx]
add esp, 4
cmp ax, 0x27
mov dword [esp + 0x18], ecx
jne 0x2238bdc
mov eax, dword [esp + 0x14]
push 0x4000
push eax
push ecx
call fcn.0224cbd0
add esp, 0xc
mov ebx, eax
jmp case.0x2238b9d.44
add esi, 2
cmp word [esi], 0x3d
jne 0x22391a6
add esi, 2
push esi
call fcn.02208580
mov ecx, eax
mov ax, word [ecx]
add esp, 4
cmp ax, 0x27
mov dword [esp + 0x18], ecx
jne 0x2238b38
mov esi, dword [esp + 0x14]
push 0x4000
mov eax, ecx
push esi
push eax
call fcn.0224cbd0
add esp, 0xc
jmp 0x2238b8a
cmp ax, 0x3f
jne 0x2238b62
lea esi, [ecx + 2]
push 0x2278318
push esi
call fcn.022384e0
add esp, 8
test eax, eax
jne 0x2238b58
cmp word [esi], ax
jne 0x2238b62
mov dword [esp + 0x1c], 1
jmp 0x2238b6a
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 0x4000
push str.___r_n_t
push ecx
push edx
call fcn.02253450
mov esi, dword [esp + 0x24]
add esp, 0x10
mov ebx, eax
movzx eax, word [esp + 0x20]
add eax, 0xffffffd6
cmp eax, 5
ja case.0x2238b9d.44
jmp dword [eax*4 + 0x2239328]
push 0x2e
push esi
call fcn.0226c0aa
add esp, 8
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 2
add ebp, 0x35
jmp case.0x2238b9d.44
push 0x2e
push esi
call fcn.0226c0aa
add esp, 8
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 2
add ebp, 0x36
jmp case.0x2238b9d.44
cmp ax, 0x5b
jne 0x2238bfe
mov edx, dword [esp + 0x14]
push 0x4000
push 0x5d
push edx
push ecx
call fcn.022531d0
add esp, 0x10
mov esi, eax
jmp 0x2238d6d
cmp ax, 0x3f
mov ebx, dword [esp + 0x18]
jne 0x2238c2c
lea esi, [ebx + 2]
push str.__r_n_
push esi
call fcn.022384e0
add esp, 8
test eax, eax
jne 0x2238c22
cmp word [esi], ax
jne 0x2238c2c
mov dword [esp + 0x1c], 1
jmp 0x2238c34
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0x4000
push 0x2278384
push 0x227837c
push eax
push ecx
call fcn.02253080
mov edx, dword [esp + 0x28]
push str.current
push edx
mov esi, eax
call fcn.0226b66a
add esp, 0x1c
test eax, eax
jne 0x2238d2a
cmp edi, 4
je 0x2238c81
cmp edi, 5
je 0x2238c81
cmp edi, 6
jne 0x2238d2a
mov eax, dword [esp + 0x14]
push 0x4000
push 0x2278370
push 0x2277338
push eax
push esi
call fcn.02253080
add esp, 0x14
cmp edi, 4
mov ebx, eax
jne 0x2238cd1
mov edi, dword [esp + 0x14]
push str.date
push edi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2239188
push edi
push 1
push eax
call sym.edb500x.dll_ConvertTimeW
mov dword [esp + 0x18], ebx
jmp case.0x2238b9d.44
cmp edi, 5
mov edi, dword [esp + 0x14]
jne 0x2238d02
push str.time
push edi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2239192
push edi
push 2
push eax
call sym.edb500x.dll_ConvertTimeW
mov dword [esp + 0x18], ebx
jmp case.0x2238b9d.44
push str.timestamp
push edi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x223919c
push edi
push 3
push eax
call sym.edb500x.dll_ConvertTimeW
mov dword [esp + 0x18], ebx
jmp case.0x2238b9d.44
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x7b
jne 0x2238d6d
mov edx, ecx
push edx
push ebx
mov esi, ebx
call fcn.02249c40
mov dword [esp + 0x18], eax
xor eax, eax
mov ax, word [ebx]
add esp, 8
test ax, ax
je 0x2238d64
cmp ax, 0x7d
je 0x2238d64
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x2238d50
jmp 0x2238d6d
cmp word [esi], 0
je 0x2238d6d
add esi, 2
push esi
call fcn.02208580
mov ebx, eax
xor eax, eax
mov ax, word [ebx]
add esp, 4
cmp ax, 0x28
mov dword [esp + 0x18], ebx
mov edi, eax
jne 0x2238ee3
add ebx, 2
xor eax, eax
mov ax, word [ebx]
test ax, ax
mov dword [esp + 0x18], ebx
je 0x2238dbb
mov edi, edi
push 8
push eax
call fcn.0226b76e
add esp, 8
test eax, eax
je 0x2238dbb
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x2238da0
mov esi, dword [esp + 0x14]
push 0x2277fc4
push esi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2238dec
mov ebp, 0x39
push 0x4000
push esi
push ebx
call fcn.0224cbd0
add esp, 0xc
mov ebx, eax
jmp 0x2238e8c
push 0x2277fbc
push esi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2238e1c
push 0x60
push 0x29
lea eax, [esp + 0xc4]
push eax
push ebx
mov ebp, 0x3a
call fcn.022531d0
add esp, 0x10
mov ebx, eax
jmp 0x2238e8c
push 0x2277fb4
push esi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2238e4c
push 0x60
push 0x29
lea ecx, [esp + 0xc4]
push ecx
push ebx
mov ebp, 0x3b
call fcn.022531d0
add esp, 0x10
mov ebx, eax
jmp 0x2238e8c
push str.sbit
push esi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2238e68
mov ebp, 0x3c
jmp 0x2238dd6
push str.rbit
push esi
call fcn.0226b66a
add esp, 8
test eax, eax
jne 0x2238e84
mov ebp, 0x3d
jmp 0x2238dd6
mov dword [esp + 0x10], 0x541
cmp word [ebx], 0x29
jne 0x2238e95
add ebx, 2
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x2239133
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
lea ecx, [esi + 1]
cmp ecx, eax
mov dword [esp + 0x2c], ecx
jl 0x22390e5
add eax, 0x20
push 0x18
push eax
mov dword [esp + 0x3c], eax
call fcn.0226b127
add esp, 8
test eax, eax
mov dword [esp + 0x20], eax
jne 0x22390a0
mov dword [esp + 0x10], 0x446
jmp 0x22390e5
cmp di, 0x2b
je 0x2238efb
cmp di, 0x2d
je 0x2238efb
cmp di, 0x2a
je 0x2238efb
cmp di, 0x2f
jne 0x2238e95
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
push esi
push edx
call fcn.0226b66a
add esp, 8
test eax, eax
je 0x2238f1b
mov ebp, 0x32
jmp 0x2238e95
add ebx, 2
xor eax, eax
mov ax, word [ebx]
cmp ax, 0x3d
mov dword [esp + 0x18], ebx
jne 0x2238fc4
push 8
push eax
call fcn.0226b76e
add esp, 8
test eax, eax
je 0x2238fa2
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x2238f31
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x2239133
xor eax, eax
mov ax, word [ebx]
test ax, ax
je 0x2238f7d
push 8
push eax
call fcn.0226b76e
add esp, 8
test eax, eax
je 0x2238f7d
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x2238f62
mov ax, word [ebx]
cmp ax, 0x27
mov dword [esp + 0x18], ebx
jne 0x2238fea
mov ecx, dword [esp + 0x14]
push 0x4000
push ecx
push ebx
call fcn.0224cbd0
add esp, 0xc
jmp 0x2239034
mov ax, word [ebx]
test ax, ax
je 0x2238f4c
lea ebx, [ebx]
cmp ax, 0x27
je 0x2238f4c
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x2238fb0
jmp 0x2238f4c
lea eax, [esp + 0xbc]
push esi
push eax
call fcn.0226b66a
add esp, 8
test eax, eax
je 0x2238f4c
mov dword [esp + 0x10], 0x41f
jmp 0x2239133
cmp ax, 0x3f
jne 0x2239014
lea esi, [ebx + 2]
push str.__r_n_
push esi
call fcn.022384e0
add esp, 8
test eax, eax
jne 0x223900a
cmp word [esi], ax
jne 0x2239014
mov dword [esp + 0x1c], 1
jmp 0x223901c
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
push 0x4000
push str.___r_n_t
push edx
push ebx
call fcn.02253450
add esp, 0x10
mov ebx, eax
movzx eax, di
add eax, 0xffffffd6
cmp eax, 5
ja case.0x2238b9d.44
jmp dword [eax*4 + 0x2239340]
mov ebp, 0x33
jmp case.0x2238b9d.44
mov ebp, 0x34
jmp case.0x2238b9d.44
mov eax, dword [esp + 0x14]
push 0x2e
push eax
call fcn.0226c0aa
add esp, 8
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 2
add ebp, 0x35
jmp case.0x2238b9d.44
mov ecx, dword [esp + 0x14]
push 0x2e
push ecx
call fcn.0226c0aa
add esp, 8
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 2
add ebp, 0x36
jmp case.0x2238b9d.44
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*2 - 0x60]
mov eax, dword [esp + 0x180]
mov esi, dword [eax + 0x44]
shl ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0x44]
push eax
call fcn.0226affd
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x184]
mov esi, dword [esp + 0x28]
add esp, 4
mov dword [edx + 0x44], ecx
mov edi, dword [esp + 0x180]
mov ecx, dword [edi + 0x44]
mov edx, dword [esp + 0x28]
lea eax, [esi + esi*2]
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ebp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
je 0x2239115
xor eax, eax
jmp 0x2239122
mov eax, dword [esp + 0x14]
push eax
call fcn.0225d710
add esp, 4
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov dword [edi + 0x8c], eax
push ebx
call fcn.02208580
mov esi, eax
add esp, 4
cmp word [esi], 0x2c
jne 0x2239154
add esi, 2
push esi
call fcn.02208580
add esp, 4
mov esi, eax
jmp 0x223917c
push 0x20
push str.__r_n_t
lea ecx, [esp + 0x44]
push ecx
push esi
call fcn.02253450
lea edx, [esp + 0x4c]
push str.where
push edx
call fcn.0226b66a
add esp, 0x18
test eax, eax
je 0x22391b2
cmp word [esi], 0
jne 0x2238a20
jmp 0x22391b2
mov dword [esp + 0x10], 0x53e
jmp 0x22391b2
mov dword [esp + 0x10], 0x53f
jmp 0x22391b2
mov dword [esp + 0x10], 0x540
jmp 0x22391b2
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], 0x4f3
mov eax, dword [esp + 0x14]
xor ebp, ebp
cmp eax, ebp
je 0x22391c5
push eax
call fcn.0226affd
add esp, 4
mov edi, dword [esp + 0x10]
cmp edi, ebp
jne 0x22392a2
cmp word [esi], bp
mov dword [esp + 0x18], esi
je 0x223928b
push 0x20
push str.__r_n_t
lea eax, [esp + 0x44]
push eax
push esi
mov word [esp + 0x4c], bp
call fcn.02253450
lea ecx, [esp + 0x4c]
mov esi, eax
push str.where
push ecx
mov dword [esp + 0x44], esi
call fcn.0226b66a
add esp, 0x18
test eax, eax
je 0x223921f
mov edi, 0x4f4
mov dword [esp + 0x10], edi
jmp 0x22392a2
mov ebx, esi
mov esi, dword [esp + 0x180]
mov eax, dword [esi + 0x3c]
cmp eax, ebp
je 0x223923b
push eax
call fcn.0226affd
add esp, 4
mov dword [esi + 0x3c], ebp
mov ebp, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x38]
push ecx
push esi
call fcn.02238510
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [esp + 0x10], edi
jne 0x22392a2
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x40], ebp
jne 0x22392a2
push ebx
call fcn.0225d710
add esp, 4
test eax, eax
mov dword [esi + 0x3c], eax
jne 0x22392a2
mov edi, 0x446
mov dword [esp + 0x10], edi
jmp 0x22392a2
push 0x2278330
call fcn.0225d710
mov edx, dword [esp + 0x184]
add esp, 4
mov dword [edx + 0x3c], eax
mov eax, dword [esp + 0x30]
push eax
call fcn.02260220
add esp, 4
test edi, edi
je 0x22392e8
mov ecx, dword [esp + 0x180]
push ecx
call fcn.02237870
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x188]
mov edx, dword [esp + 0x14]
sub eax, ebp
sar eax, 1
push eax
push edx
call fcn.0224bd30
mov ecx, dword [esp + 0x198]
add esp, 0xc
mov dword [ecx], eax
jmp 0x2239302
mov esi, dword [esp + 0x18c]
test esi, esi
je 0x2239302
push str.Statement_syntax_is_correct
call fcn.0225d710
add esp, 4
mov dword [esi], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x188]
neg eax
sbb eax, eax
pop edi
and eax, 0x10
pop esi
add eax, 7
pop ebp
mov dword [edx], eax
mov eax, dword [esp + 4]
pop ebx
add esp, 0x16c
ret