Function at 0x3003a051
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
or dword [ebp - 0x2c], 0xffffffff
and dword [ebp - 0x44], 0
push ebx
mov ebx, dword [ebp + 0x18]
push esi
push edi
mov edi, dword [ebp + 0xc]
xor ecx, ecx
call fcn.301ff16b
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx]
mov ecx, ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], esi
call dword [eax]
cmp esi, 4
mov dword [ebp - 0x14], eax
jne 0x3003a09e
xor esi, esi
mov dword [ebp - 0x20], esi
jmp 0x3003a0b4
lea eax, [ebp - 0x20]
push eax
mov eax, edi
call fcn.3003b479
test eax, eax
jl case.default.0x3003ace5
mov esi, dword [ebp - 0x20]
mov ebx, dword [edi + 8]
add ebx, dword [edi + 0x28]
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
cmp dword [ebp - 0x1c], 1
jne 0x3003a82e
xor edx, edx
lea ecx, [ebp - 0x4c]
call fcn.301feffa
mov ecx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x864]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x48]
mov dword [eax + 4], ecx
jmp 0x3003a82e
lea ecx, [ebx + 8]
lea eax, [edi + 0x861]
cmp ecx, eax
jae case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
lea ecx, [eax + 0x12]
imul eax, eax, 6
imul ecx, ecx, 6
movzx ecx, word [ecx + edi]
add eax, edi
movzx edx, byte [eax + 0x68]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x34]
dec ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
je 0x3003a5b7
dec ecx
je 0x3003a527
dec ecx
je 0x3003a31c
dec ecx
je 0x3003a1bb
dec ecx
jne case.0x3003a331.11
movzx eax, word [ebp - 8]
mov ecx, 0x600d
cmp eax, ecx
jg 0x3003acd7
je 0x3003b0aa
add ecx, 0xfffffff8
cmp eax, ecx
jg 0x3003ac6f
je 0x3003ac43
sub eax, 9
je 0x3003abcf
sub eax, 0x1ffb
je 0x3003aace
sub eax, 0x3ffd
je 0x3003a97c
dec eax
je 0x3003a914
dec eax
je 0x3003a8bc
dec eax
jne case.default.0x3003ace5
cmp dword [ebp - 0x14], 5
jne 0x3003a1b1
test dword [edi + 0x64], 0x20000
jne case.0x3003ace5.24598
mov word [esi], 0x15
jmp 0x3003ae56
movzx ecx, word [ebp - 8]
cmp ecx, 0x6005
jg 0x3003a201
je 0x3003a1f5
sub ecx, 8
je 0x3003a1ee
dec ecx
dec ecx
je 0x3003b00f
sub ecx, 0x5ff8
je 0x3003a1f5
dec ecx
dec ecx
jne case.default.0x3003ace5
mov dword [ebp - 8], 0x30
jmp 0x3003a2a4
cmp word [eax + 0x6a], 0x20
jmp 0x3003a21c
mov dword [ebp - 8], 0x31
jmp 0x3003a2a4
sub ecx, 0x6006
je 0x3003a287
sub ecx, 0x10
je 0x3003a236
sub ecx, 0x1feb
jne case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x38]
je case.0x3003a331.11
mov ecx, dword [ebp - 0xc]
mov eax, edi
call fcn.3003c8f8
mov eax, 0x800a03ec
jmp 0x3003a87a
cmp dword [ebp - 0x24], 0
jne case.default.0x3003ace5
lea eax, [ebp - 0x20]
push eax
mov eax, edi
call fcn.3003b479
test eax, eax
jl case.default.0x3003ace5
mov esi, dword [ebp - 0x20]
lea eax, [esi + 2]
mov cx, word [eax]
and cx, 0xf3ff
or cx, 0x200
mov word [eax], cx
or dword [edi + 0x64], 0x2000
or word [eax], 0x100
mov word [esi], 0x5e
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x1c], 5
mov byte [eax], dl
jmp case.0x3003a331.11
cmp dword [ebp - 0x14], 5
jne 0x3003a29d
test dword [edi + 0x64], 0x20000
mov dword [ebp - 8], 0x5e
jne 0x3003a2a4
mov dword [ebp - 8], 0x32
cmp dword [ebp - 0x24], 0
jne case.default.0x3003ace5
lea eax, [ebp - 0x20]
push eax
mov eax, edi
call fcn.3003b479
test eax, eax
jl case.default.0x3003ace5
push 5
pop eax
cmp dword [ebp - 0x14], eax
jne 0x3003a2da
test dword [edi + 0x64], 0x20000
je 0x3003a2da
mov ecx, dword [ebp - 8]
add ecx, 0xfffffffe
jmp 0x3003a2dd
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
shl ecx, 0xa
xor cx, word [esi + 2]
mov dword [ebp - 0x1c], eax
mov ax, word [ebp - 8]
and cx, 0xc00
xor word [esi + 2], cx
or word [esi + 2], 0x200
or dword [edi + 0x64], 0x2000
or word [esi + 2], 0x100
mov word [esi], ax
mov dword [ebp - 0x24], 1
mov byte [esi + 2], dl
jmp case.0x3003a331.11
movzx eax, word [ebp - 8]
dec eax
cmp eax, 0x14
ja case.0x3003a331.12
movzx eax, byte [eax + 0x3003b159]
jmp dword [eax*4 + 0x3003b125]
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 4
jmp 0x3003a5a5
lea eax, [edx + edx]
lea ecx, [eax + ebx + 2]
mov dword [ebp - 8], eax
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov eax, dword [ebp - 0x10]
mov byte [ebx], 3
inc ebx
mov byte [ebx], al
inc ebx
lea ecx, [edi + 0x861]
sub ecx, ebx
sar ecx, 1
push ecx
mov ecx, dword [edi]
push ebx
push eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0x69]
lea eax, [ecx + eax*2]
push eax
call fcn.3002655b
add ebx, dword [ebp - 8]
jmp case.0x3003a331.11
lea ecx, [ebx + 1]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 0x5d
mov ebx, ecx
jmp case.0x3003a331.11
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 0x2d
jmp 0x3003a5a5
lea ecx, [ebx + 1]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 7
jmp 0x3003a3ae
movzx eax, word [edi + 0x874]
lea ecx, [ebx + eax*2 + 7]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 0x41
inc ebx
and dword [ebp - 0x18], 0
lea eax, [edi + 0x876]
jmp 0x3003a415
cmp cx, 0x2d
je 0x3003a41f
inc eax
inc eax
movzx ecx, word [eax]
test cx, cx
jne 0x3003a40d
jmp 0x3003a477
and dword [ebp - 0x18], 0
mov ecx, eax
sub ecx, edi
sub ecx, 0x876
sar ecx, 1
add eax, 2
mov word [edi + 0x874], cx
mov dword [ebp - 0x10], eax
jmp 0x3003a469
shl dword [ebp - 0x18], 4
movzx eax, ax
push eax
call dword [sym.imp.MSVCR80.dll_tolower]
cmp eax, 0x61
pop ecx
mov ecx, dword [ebp - 0x18]
jl 0x3003a45b
lea eax, [ecx + eax - 0x57]
jmp 0x3003a45f
lea eax, [ecx + eax - 0x30]
add dword [ebp - 0x10], 2
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
test ax, ax
jne 0x3003a43e
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0x874]
movzx ecx, word [eax]
lea ecx, [ecx + ecx + 2]
push ecx
push ebx
push eax
call fcn.3002660a
movzx eax, word [edi + 0x874]
lea ebx, [ebx + eax*2 + 2]
mov eax, dword [ebp - 0x18]
mov dword [ebx], eax
add ebx, 4
jmp case.0x3003a331.11
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov ecx, dword [ebp + 0x14]
push 0x1b
call fcn.3013dcf3
test eax, eax
je case.0x3003a331.11
mov byte [ebx], 0x3d
jmp 0x3003a6db
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov ecx, dword [ebp + 0x14]
push 0x1b
call fcn.3013dcf3
test eax, eax
je case.0x3003a331.11
mov byte [ebx], 0x3e
jmp 0x3003a6db
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov eax, dword [ebp - 0x18]
mov byte [ebx], 2
mov ax, word [eax + 0x6a]
inc ebx
mov word [ebx], ax
inc ebx
inc ebx
or dword [edi + 0x64], 0x100000
jmp case.0x3003a331.11
movzx eax, word [ebp - 8]
sub eax, 0x4001
jne 0x3003a881
test byte [edi + 0x64], 2
je 0x3003b100
push 3
pop eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
test byte [edi + 0x64], 2
je case.0x3003a331.6
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 0x6a]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx]
push 8
call dword [eax + 0xa0]
cmp ax, word [ebp - 0x10]
je 0x3003b0aa
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 0x6a]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx]
push 7
call dword [eax + 0xa0]
cmp ax, word [ebp - 0x10]
je 0x3003b0c7
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov byte [ebx], 2
mov eax, dword [ebp - 0x18]
mov ax, word [eax + 0x6a]
inc ebx
mov word [ebx], ax
inc ebx
inc ebx
jmp case.0x3003a331.11
test word [ebp - 8], 0x1000
je 0x3003a5e8
cmp word [ebp - 8], 0x3005
je 0x3003a5e8
cmp dword [edi + 0x2c], 0xffffffff
jne 0x3003a5d5
mov eax, ebx
sub eax, dword [edi + 8]
mov dword [edi + 0x2c], eax
or word [esi + 2], 0x2000
cmp dword [ebp - 0x28], 0
jne 0x3003a5e5
add byte [esi], dl
jmp 0x3003a5e8
add byte [esi + 1], dl
movzx eax, word [ebp - 8]
push 9
pop ecx
sub eax, ecx
je 0x3003a70d
sub eax, 0x1ffb
je 0x3003a6e1
sub eax, 0xffd
je 0x3003a694
dec eax
je 0x3003a664
dec eax
je 0x3003a65b
dec eax
dec eax
jne case.0x3003a331.12
test byte [edi + 0x64], 0x20
jne 0x3003a66a
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov eax, dword [ebp - 0x18]
push dword [ebp - 0xc]
mov byte [ebx], 2
mov ax, word [eax + 0x6a]
add ax, 0x30
inc ebx
mov word [ebx], ax
inc ebx
mov eax, esi
mov ecx, edi
inc ebx
call fcn.3003b2a6
or dword [ebp - 0x2c], 0xffffffff
jmp case.0x3003a331.11
mov dword [ebp - 8], 0x26
jmp 0x3003a6a6
test byte [edi + 0x64], 0x20
je 0x3003a67c
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], ecx
jne 0x3003a677
add byte [esi], dl
jmp 0x3003a683
add byte [esi + 1], dl
jmp 0x3003a683
mov dword [ebp - 8], 0xb
push dword [ebp - 0xc]
mov eax, esi
mov ecx, edi
call fcn.3003b2a6
mov edx, dword [ebp - 0x10]
jmp 0x3003a6ac
test word [esi + 2], 0x200
je 0x3003a6a3
mov eax, dword [ebp + 8]
or dword [eax + 0x28], 0x40
mov dword [ebp - 8], ecx
or word [esi + 2], 0x1000
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x2c]
jne 0x3003a6bc
add byte [ebx - 1], dl
jmp case.0x3003a331.11
lea ecx, [ebx + 2]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov al, byte [ebp - 8]
mov byte [ebx], al
movzx eax, al
inc ebx
mov dword [ebp - 0x2c], eax
mov byte [ebx], dl
inc ebx
jmp case.0x3003a331.11
inc dword [ebp - 0x28]
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
ja case.default.0x3003ace5
or dword [ebp - 0x2c], 0xffffffff
mov byte [ebx], 0xa
or word [esi + 2], 0x200
or dword [edi + 0x64], 0x10
mov ebx, eax
jmp case.0x3003a331.11
mov eax, dword [ebp - 0xc]
lea ecx, [eax + 1]
cmp ecx, dword [edi + 0x1c]
jge 0x3003a72a
add eax, 0x13
imul eax, eax, 6
movzx eax, word [eax + edi]
shr eax, 0xc
and eax, 1
jmp 0x3003a72c
xor eax, eax
test eax, eax
jne 0x3003a81f
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
push 0xa
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [edi]
push 6
mov ecx, edi
mov word [ebp - 6], ax
call dword [edx + 0xa0]
mov cx, word [ebp - 6]
cmp ax, cx
jne 0x3003a80a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xf0]
test eax, eax
jne 0x3003a7a6
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xec]
test eax, eax
je 0x3003a7a6
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp + 0xc]
lea ecx, [eax + 1]
cmp ecx, dword [edi + 0x1c]
jge 0x3003a79e
add eax, 0x13
imul eax, eax, 6
xor ecx, ecx
cmp word [eax + edi], 4
sete cl
mov eax, ecx
jmp 0x3003a7a0
xor eax, eax
test eax, eax
jne 0x3003a7de
jmp 0x3003a7a9
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x120]
test eax, eax
je 0x3003a80d
mov eax, dword [ebp - 0xc]
lea ecx, [eax + 1]
cmp ecx, dword [edi + 0x1c]
jge 0x3003a7d8
add eax, 0x13
imul eax, eax, 6
xor ecx, ecx
cmp word [eax + edi], 0x4004
sete cl
mov eax, ecx
jmp 0x3003a7da
xor eax, eax
test eax, eax
je 0x3003a80d
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov ecx, dword [ebp + 0x14]
mov byte [ebx], 2
mov eax, dword [ecx]
push 0xa
inc ebx
call dword [eax + 0xa0]
mov word [ebx], ax
inc ebx
inc ebx
dec dword [ebp - 0x10]
jmp 0x3003a80d
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x10], 0
jle case.0x3003a331.11
mov al, byte [ebp - 0x10]
mov cl, 0xfd
imul cl
add byte [esi + 2], al
jmp case.0x3003a331.11
test byte [edi + 0x64], 0x10
jne case.0x3003a331.11
or word [esi + 2], 0x100
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x30]
jl 0x3003a0ec
test esi, esi
je 0x3003a86a
xor eax, eax
mov ah, byte [ebp - 0x1c]
xor ax, word [esi + 4]
and ax, 0x700
xor word [esi + 4], ax
mov al, byte [ebp - 0x38]
mov byte [esi + 4], al
mov al, byte [edi + 0x28]
mov byte [esi + 6], al
sub bl, byte [edi + 8]
sub bl, byte [edi + 0x28]
movzx eax, bl
mov byte [esi + 7], bl
add dword [edi + 0x28], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x14
dec eax
je 0x3003b076
dec eax
je 0x3003b070
dec eax
je 0x3003b03c
dec eax
je 0x3003b021
dec eax
jne case.0x3003a331.12
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
mov byte [esi], 5
ja case.default.0x3003ace5
mov byte [ebx], 6
jmp 0x3003b038
mov ecx, dword [ebp + 0x14]
call fcn.3013dceb
test eax, eax
je 0x3003a8f7
cmp dword [ebp - 0x14], 5
jne 0x3003a90a
cmp dword [ebp - 0x10], 3
jl 0x3003a8fd
test dword [edi + 0x64], 0x40000
je 0x3003a8e6
cmp dword [edi + 0x54], 0x409
je 0x3003a8fd
xor eax, eax
cmp dword [ebp - 0x10], 3
setne al
add eax, 0x33
jmp 0x3003ad52
cmp dword [ebp - 0x14], 5
jne 0x3003a90a
test dword [edi + 0x64], 0x20000
jne case.0x3003ace5.24597
mov word [esi], 0xd
jmp 0x3003ae3a
cmp dword [ebp - 0x14], 5
jne 0x3003a92a
test dword [edi + 0x64], 0x20000
je 0x3003a92a
mov word [esi], 0x46
jmp 0x3003a92f
mov word [esi], 0x11
cmp edx, 5
jne 0x3003ae3a
mov word [esi], 0x3b
mov ecx, dword [ebp + 0x14]
call fcn.3013dceb
test eax, eax
je 0x3003ae8a
cmp dword [ebp - 0x14], 3
jne 0x3003ae8a
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp eax, 5
jge 0x3003ae8a
cmp word [esi], 0x10
jne 0x3003ae8a
mov word [esi], 0x33
jmp 0x3003ae8a
cmp dword [ebp - 0x14], 5
jne 0x3003aabe
mov eax, dword [edi + 0x64]
shr eax, 0x12
and eax, 1
je 0x3003a9dd
mov ecx, dword [edi + 0x54]
cmp ecx, 0x404
je 0x3003a9a4
cmp ecx, 0x411
jne 0x3003a9dd
cmp edx, 1
je 0x3003a9d3
cmp edx, 2
jne 0x3003aab4
cmp ecx, 0x404
je 0x3003a9d3
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test eax, eax
jne 0x3003a9d3
mov word [esi], 0x39
jmp 0x3003ae8a
mov word [esi], 0x38
jmp 0x3003ae8a
cmp edx, 2
jg 0x3003aa50
test dword [edi + 0x64], 0x20000
je 0x3003aa0d
test eax, eax
je 0x3003aa0d
mov ecx, dword [ebp + 0x14]
call fcn.3013dd4c
cmp eax, 0x41e
jne 0x3003aa0d
cmp dword [edi + 0x54], eax
jne 0x3003aa0d
mov word [esi], 0x50
jmp 0x3003ae8a
mov eax, dword [edi + 0x64]
test eax, 0x20000
je 0x3003aa21
mov word [esi], 0x5a
jmp 0x3003ae8a
test eax, 0x40000
je 0x3003aa46
mov ecx, dword [ebp + 0x14]
call fcn.3013dd4c
cmp eax, 0x41e
jne 0x3003aa46
cmp dword [edi + 0x54], eax
jne 0x3003aa46
mov word [esi], 0x58
jmp 0x3003ae8a
mov word [esi], 0x1b
jmp 0x3003ae8a
test dword [edi + 0x64], 0x20000
je 0x3003aa7b
test eax, eax
je 0x3003aa7b
mov ecx, dword [ebp + 0x14]
call fcn.3013dd4c
cmp eax, 0x41e
jne 0x3003aa7b
cmp dword [edi + 0x54], eax
jne 0x3003aa7b
mov word [esi], 0x51
jmp 0x3003ae8a
mov eax, dword [edi + 0x64]
test eax, 0x20000
je 0x3003aa8f
mov word [esi], 0x5b
jmp 0x3003ae8a
test eax, 0x40000
je 0x3003aab4
mov ecx, dword [ebp + 0x14]
call fcn.3013dd4c
cmp eax, 0x41e
jne 0x3003aab4
cmp dword [edi + 0x54], eax
jne 0x3003aab4
mov word [esi], 0x59
jmp 0x3003ae8a
mov word [esi], 0x1c
jmp 0x3003ae8a
xor eax, eax
cmp edx, 2
setg al
add eax, 0x1b
jmp 0x3003ad52
mov eax, dword [ebp - 0xc]
lea ecx, [eax + 1]
cmp ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
je 0x3003ab30
add eax, 0x13
imul eax, eax, 6
cmp word [eax + edi], 0x3002
jne 0x3003ab30
lea edx, [ebx + 2]
lea eax, [edi + 0x861]
cmp edx, eax
ja case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
mov word [esi], 0x2e
mov byte [ebx], 0x2e
mov al, byte [eax + edi + 0x6e]
mov byte [esi + 2], al
movzx eax, al
inc ebx
cmp eax, 3
jbe 0x3003ab21
mov dword [ebp - 0xc], ecx
jmp case.default.0x3003ace5
mov al, byte [esi + 2]
mov byte [ebx], al
inc ebx
add dword [ebp - 0xc], 2
jmp case.0x3003a331.12
lea ecx, [ebx + 1]
lea eax, [edi + 0x861]
cmp ecx, eax
mov dword [ebp + 8], ecx
ja case.default.0x3003ace5
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
push 8
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [edi]
push 4
mov ecx, edi
mov word [ebp + 0x1a], ax
call dword [edx + 0xa0]
mov cx, word [ebp + 0x1a]
cmp cx, ax
jne 0x3003ab7c
mov edi, dword [ebp + 0xc]
mov word [esi], 0x24
mov byte [ebx], 0x24
mov ebx, dword [ebp + 8]
jmp 0x3003abc4
mov eax, dword [edi]
push 7
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [edi]
push 4
mov ecx, edi
mov word [ebp + 0x16], ax
call dword [edx + 0xa0]
mov cx, word [ebp + 0x16]
cmp cx, ax
jne 0x3003aba6
mov word [esi], 0x25
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp + 0xc]
imul eax, eax, 6
mov word [esi], 2
mov byte [ebx], 2
mov ebx, dword [ebp + 8]
mov ax, word [eax + edi + 0x6a]
mov word [ebx], ax
inc ebx
inc ebx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xc], eax
jmp case.0x3003a331.12
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
push 8
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [edi]
push 6
mov ecx, edi
mov word [ebp + 0x1a], ax
call dword [edx + 0xa0]
mov cx, word [ebp + 0x1a]
cmp cx, ax
je 0x3003b0a7
mov eax, dword [edi]
push 7
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [edi]
push 6
mov ecx, edi
mov word [ebp + 0x16], ax
call dword [edx + 0xa0]
mov cx, word [ebp + 0x16]
cmp cx, ax
jne 0x3003ac25
mov word [esi], 0x25
mov edi, dword [ebp + 0xc]
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
mov word [esi], 2
jmp 0x3003b08e
cmp dword [ebp - 0x14], 5
jne 0x3003ac59
test dword [edi + 0x64], 0x20000
je 0x3003ac59
mov word [esi], 0x4c
jmp 0x3003ac5e
mov word [esi], 0x17
mov ax, word [esi + 2]
and ax, 0xf7ff
or ax, 0x400
jmp 0x3003ae6f
sub eax, 0x6006
je 0x3003acba
dec eax
je case.0x3003ace5.24592
dec eax
je 0x3003b0c7
dec eax
je 0x3003ac9e
dec eax
jne case.default.0x3003ace5
cmp edx, 2
jl 0x3003ac96
push 2
pop edx
add edx, 0x37
jmp 0x3003adf6
cmp edx, 3
je 0x3003a972
cmp edx, 4
jl 0x3003ae8a
mov word [esi], 0x34
jmp 0x3003ae8a
cmp dword [ebp - 0x14], 5
jne 0x3003accd
test dword [edi + 0x64], 0x20000
jne case.0x3003ace5.24600
mov word [esi], 0x19
jmp 0x3003ae63
sub eax, 0x600e
cmp eax, 0xc
ja case.default.0x3003ace5
jmp dword [eax*4 + 0x3003b171]
mov ecx, dword [ebp + 0x14]
push 0x18
call fcn.3013dcf3
test eax, eax
je 0x3003ad17
cmp dword [ebp - 0x14], 5
jne 0x3003ad17
test dword [edi + 0x64], 0x40000
je 0x3003ad17
cmp dword [edi + 0x54], 0x401
jne 0x3003ad17
mov word [esi], 0x3f
mov ecx, dword [ebp + 0x14]
push 0x1a
call fcn.3013dcf3
test eax, eax
je 0x3003ae8a
cmp dword [ebp - 0xc], 0
je 0x3003ad44
cmp dword [ebp - 0xc], 1
jne case.default.0x3003ace5
cmp word [edi + 0x6c], 0x13
jne case.default.0x3003ace5
xor eax, eax
cmp word [ebp - 8], 0x6011
setne al
add eax, 0x3f
mov word [esi], ax
jmp 0x3003ae8a
mov ecx, dword [ebp + 0x14]
call fcn.3013dceb
test eax, eax
je case.default.0x3003ace5
mov ecx, dword [ebp + 0x14]
call fcn.3013dd8f
test eax, eax
jne 0x3003ad89
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test eax, eax
je case.default.0x3003ace5
mov ecx, dword [ebp + 0x14]
call fcn.3013dd8f
test eax, eax
je 0x3003ada2
push 2
pop eax
cmp dword [ebp - 0x10], eax
jl 0x3003ada9
mov dword [ebp - 0x10], eax
jmp 0x3003ada9
mov dword [ebp - 0x10], 1
xor eax, eax
cmp dword [ebp - 0x10], 2
sete al
lea ecx, [eax + ebx + 1]
lea eax, [edi + 0x861]
cmp ecx, eax
ja case.default.0x3003ace5
cmp dword [ebp - 0x10], 2
jne 0x3003adce
mov byte [ebx], 0x37
inc ebx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x12c]
neg eax
sbb eax, eax
add eax, 0x39
mov word [esi], ax
mov byte [ebx], al
inc ebx
jmp 0x3003b019
cmp edx, 3
jl 0x3003adf3
push 3
pop edx
add edx, 0x34
mov word [esi], dx
jmp 0x3003ae8a
xor eax, eax
cmp edx, 2
setg al
add eax, 0x50
jmp 0x3003ad52
xor eax, eax
cmp edx, 2
setg al
add eax, 0x58
jmp 0x3003ad52
xor eax, eax
cmp edx, 2
setg al
add eax, 0x5a
jmp 0x3003ad52
mov word [esi], 0x46
jmp 0x3003ae3a
mov word [esi], 0x42
push 4
pop eax
cmp dword [ebp - 0x10], eax
jl 0x3003ae45
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
dec eax
add word [esi], ax
jmp 0x3003a93d
mov word [esi], 0x4a
and word [esi + 2], 0xf3ff
jmp 0x3003ae73
mov word [esi], 0x4e
mov ax, word [esi + 2]
and ax, 0xfbff
or ax, 0x800
mov word [esi + 2], ax
cmp edx, 2
jle 0x3003ae7b
push 2
pop edx
lea eax, [edx - 1]
add word [esi], ax
mov byte [esi + 2], dl
or word [esi + 2], 0x200
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
ja case.default.0x3003ace5
mov cl, byte [esi]
mov byte [ebx], cl
jmp 0x3003b038
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
ja case.default.0x3003ace5
xor ecx, ecx
cmp word [ebp - 8], 0x6010
setne cl
dec ecx
and ecx, 0x3d
add ecx, 0x22
mov word [esi], cx
mov byte [ebx], cl
mov edx, dword [edi]
mov ebx, eax
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
add eax, edi
cmp word [ebp - 8], 0x6010
movzx ecx, byte [eax + 0x69]
movzx eax, byte [eax + 0x68]
lea ecx, [edx + ecx*2]
lea eax, [ecx + eax*2]
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x18], eax
je 0x3003afd8
mov ecx, dword [ebp + 0x14]
call fcn.3013dceb
test eax, eax
jne 0x3003afa4
push dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp + 0xc]
push 0xffffffffffffffff
push 3
sar eax, 1
push eax
push 0x30025cd0
push dword [ebp + 0xc]
call fcn.3002e2e2
test eax, eax
je 0x3003afbf
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x80]
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [ebp + 0xc]
movzx ecx, word [ecx]
mov dword [ebp + 8], eax
movzx eax, word [eax]
mov dword [ebp + 0x14], eax
add eax, ecx
lea edx, [ebx + eax*2 + 2]
lea eax, [edi + 0x861]
cmp edx, eax
ja case.default.0x3003ace5
mov al, byte [ebp + 0x14]
mov byte [ebx], cl
inc ebx
mov byte [ebx], al
lea eax, [ecx + ecx]
push eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0xc]
inc ebx
push ebx
add eax, 2
push eax
call fcn.3002660a
mov eax, dword [ebp + 0x14]
add ebx, dword [ebp + 0x18]
add eax, eax
push eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 8]
push ebx
add eax, 2
push eax
call fcn.3002660a
add ebx, dword [ebp + 0x14]
jmp 0x3003b019
cmp dword [ebp - 0xc], 0
jne 0x3003afbf
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x130]
test eax, eax
je 0x3003afbf
cmp dword [ebp - 0x14], 5
je 0x3003afd8
push dword [ebp + 0x14]
lea eax, [edi + 0x861]
push dword [ebp + 0xc]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0x18]
call fcn.3003b3d0
jmp 0x3003b038
lea ecx, [ebx + 0xa]
lea eax, [edi + 0x861]
cmp ecx, eax
ja 0x3003b019
mov byte [ebx], 2
inc ebx
mov byte [ebx], 2
push 4
inc ebx
push ebx
push 0x3001e14a
call fcn.3002660a
push 4
add ebx, 4
push ebx
push 0x3001e152
call fcn.3002660a
add ebx, 4
jmp 0x3003b019
cmp dword [ebp - 0x24], 0
je case.default.0x3003ace5
inc dword [ebp - 0xc]
jmp case.0x3003a331.12
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
mov byte [esi], 4
ja case.default.0x3003ace5
mov byte [ebx], 1
mov ebx, eax
jmp 0x3003b019
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
mov byte [esi], 3
ja case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
mov byte [ebx], 2
mov ax, word [eax + edi + 0x6a]
inc ebx
mov word [ebx], ax
mov eax, dword [ebp + 8]
inc ebx
inc ebx
or dword [eax + 0x28], 0x20000
jmp 0x3003b019
mov byte [esi + 1], 0x1f
jmp 0x3003b07a
mov byte [esi + 1], 0x1e
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
mov byte [esi], 2
ja case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
mov byte [ebx], 2
mov ax, word [eax + edi + 0x6a]
inc ebx
mov word [ebx], ax
inc ebx
inc ebx
jmp 0x3003b019
mov edi, dword [ebp + 0xc]
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
ja case.default.0x3003ace5
mov byte [ebx], 0x24
mov ebx, eax
mov word [esi], 0x24
jmp 0x3003b0f1
lea ecx, [ebx + 3]
lea eax, [edi + 0x861]
cmp ecx, eax
mov word [esi], 0x25
ja case.default.0x3003ace5
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
mov byte [ebx], 2
mov ax, word [eax + edi + 0x6a]
inc ebx
mov word [ebx], ax
inc ebx
inc ebx
inc dword [ebp - 0xc]
mov dword [ebp - 0x1c], 5
jmp case.0x3003a331.12
lea eax, [ebx + 1]
lea ecx, [edi + 0x861]
cmp eax, ecx
mov byte [esi], 1
ja case.default.0x3003ace5
mov byte [ebx], 0x2a
mov ebx, eax
mov eax, dword [ebp + 8]
or dword [eax + 0x28], 0x40
jmp 0x3003b019