Function at 0x67df60
Capabilities:
Encode data using base64
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4b8
mov ebx, dword [ebp + 0x20]
mov edi, dword [ebp + 8]
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
test edi, edi
sete al
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb cl, cl
cmp ebx, 3
seta dl
mov esi, ebx
and esi, 1
xor esi, ebx
cmp esi, 0xffffffff
setne ah
mov esi, 0x66
test dl, ah
jne 0x67f3bf
and cl, al
jne 0x67f3bf
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x90], eax
test eax, eax
je 0x67f3bf
cmp dword [ebp + 0x2c], 0
je 0x67f3bf
xor esi, esi
mov eax, dword [ebp + 0x2c]
cmp dword [eax], 0
je 0x67f3bf
mov ecx, dword [ebp + 0xc]
mov eax, 0x5d
xor eax, 0x9d
add al, 0x40
movzx eax, al
cmp eax, 0x7a
lea ebx, [eax + 0x32]
jne 0x67e04c
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
sete byte [esp + 0x66]
jne 0x67e30f
mov al, bl
xor al, 0x34
jmp 0x67e05f
test ecx, ecx
sete byte [esp + 0x66]
jne 0x67e30f
mov al, bl
xor al, 0x32
add al, 6
mov ecx, dword [ebp + 0x18]
xor ebx, 0x5b
movzx eax, al
cmp eax, 2
je 0x67e09e
cmp eax, 6
je 0x67e0c6
cmp eax, 0x41
jne 0x67e0ea
mov dl, bl
add dl, 0x99
mov al, dl
xor al, 0x56
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jne 0x67e19b
xor al, dl
add al, 0xd8
jmp 0x67e103
mov al, bl
xor al, 0x3d
cmp ecx, 1
jne 0x67e19b
mov edx, ecx
not edx
and edx, 1
add edx, ecx
je 0x67e19b
xor bl, 0x4d
add al, bl
add al, 0xb6
movzx ebx, bl
jmp 0x67e103
mov al, bl
add al, 0x9d
xor al, 0x52
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jne 0x67e19b
add al, 0xda
jmp 0x67e103
mov al, bl
add al, 0xd8
movzx eax, al
add eax, ebx
xor al, 0xfe
cmp ecx, 1
jne 0x67e19b
add al, 0xda
movzx ebx, al
and ebx, 0xffffffb0
xor ebx, 0xf2
movzx eax, al
lea ecx, [edi + 0x140]
cmp eax, 0x2e
jne 0x67e20b
mov dword [esp + 0xa4], ecx
lea eax, [edi + 0x134]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp], 0x31
call fcn.00685420
mov esi, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp esi, eax
jne 0x67f3bf
mov edx, dword [esp + 0xa4]
xor bl, 0xfc
jmp 0x67e283
movzx eax, al
cmp eax, 0x26
je 0x67e2a9
cmp eax, 0x54
lea eax, [edi + 0x134]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x31
call fcn.00685420
mov esi, eax
test esi, esi
jne 0x67f3bf
jmp 0x67e30f
mov dword [esp + 0xa4], ecx
lea eax, [edi + 0x134]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp], 0x31
call fcn.00685420
mov esi, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp esi, eax
jne 0x67f3bf
mov edx, dword [esp + 0xa4]
add bl, 0x64
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x67e30f
and bl, 0xe7
add bl, 0x3f
movzx ecx, bl
cmp ecx, 0x5c
je 0x67e29f
cmp ecx, 0x5f
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
jmp 0x67e30f
lea eax, [edi + 0x134]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x31
call fcn.00685420
mov esi, eax
test esi, esi
je 0x67e30f
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x67f3bf
mov ecx, dword [ebp + 0x24]
mov ebx, 0x72
mov eax, dword [edi + 0x10c]
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00688230
mov ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax]
mov eax, ecx
shr eax, 3
mov edx, 0x20408103
mul edx
shr edx, 4
inc edx
mov dword [esp + 0xa0], edx
lea eax, [esi + ecx - 1]
shr eax, 3
mov ecx, 0x20408103
mul ecx
shr edx, 4
mov eax, 3
sub eax, edx
xor eax, edx
setne al
movzx eax, al
add eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x138]
mov dword [esp + 0xa4], eax
test eax, eax
je 0x67e472
mov dword [esp + 0x8c], esi
xor bl, 0x65
mov dword [esp + 0x9c], ebx
mov eax, dword [edi + 0x13c]
mov dword [esp + 0x88], eax
movzx edx, bl
lea edi, [eax + 0x114]
xor ecx, ecx
nop dword [eax]
and edx, 0xffffff6b
lea ebx, [edx + 0xe4]
mov esi, dword [esp + 0xa0]
cmp dword [edi - 4], esi
ja 0x67e430
add ebx, 0xffffff6b
mov eax, dword [esp + 0x9c]
movzx eax, al
cmp eax, 0x17
je 0x67e3f7
cmp eax, 0x72
jne 0x67e40e
add bl, 0xc5
jmp 0x67e3fa
xor bl, 0x2e
cmp dword [edi], esi
movzx edx, bl
mov al, bl
mov dword [esp + 0x9c], ebx
mov ebx, edx
jb 0x67e430
jmp 0x67e488
mov al, bl
add al, 0x20
cmp dword [edi], esi
jae 0x67e488
mov edx, ebx
movzx ebx, al
mov dword [esp + 0x9c], eax
nop word cs:[eax + eax]
and ebx, 0xffffff00
inc ecx
mov dword [esp + 0x94], 0
cmp ecx, dword [esp + 0xa4]
jae 0x67e4ae
and edx, 0xffffff80
sub edx, ebx
xor edx, 0x83
mov eax, ecx
or eax, 2
mov esi, ecx
xor esi, 2
add esi, eax
add edi, 0x118
test esi, esi
jne 0x67e3c0
jmp 0x67e4ae
mov dword [esp + 0x3c], 0
xor edx, edx
mov ebx, 0x72
mov edi, esi
jmp 0x67e559
and al, 0x90
movzx ebx, al
add ebx, 0xcf
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
add eax, ecx
mov dword [esp + 0x94], eax
and ebx, 0xffffff20
mov edi, dword [esp + 0x88]
add edi, 0x114
xor edx, edx
mov esi, dword [esp + 0x60]
nop word [eax + eax]
and ebx, 0xffffff2f
cmp dword [edi - 4], esi
ja 0x67e4fd
xor eax, eax
test al, al
jne 0x67e4fd
xor ebx, 0x9d
xor ebx, 0xfd
mov eax, dword [edi]
cmp eax, esi
jb 0x67e4fd
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x67e51c
and ebx, 0xffffff9f
mov eax, ebx
xor ebx, 0xd0
inc edx
add edi, 0x118
xor ecx, ecx
cmp edx, dword [esp + 0xa4]
jb 0x67e4d0
jmp 0x67e521
inc edx
mov ecx, edx
mov eax, ebx
and eax, 0xffffff9f
mov edx, dword [esp + 0x94]
cmp edx, ecx
mov edi, dword [ebp + 8]
mov esi, edi
mov ebx, eax
ja 0x67f275
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 3
mov edi, dword [esp + 0x8c]
je 0x67f27c
mov dword [esp + 0x3c], ecx
add ebx, 0x47
add edi, dword [esp + 0x98]
mov dword [esp + 0x8c], edi
and ebx, 0xffffffca
mov ch, bl
add ch, 0xfe
mov al, bl
add al, 0xf0
mov byte [esp + 0x65], al
add al, ch
movzx eax, al
xor eax, ebx
mov cl, al
add cl, 0xf
mov byte [esp + 0x67], cl
add al, 7
mov dword [esp + 0x50], eax
add al, cl
add al, 0x96
mov byte [esp + 0x7f], al
xor al, 0x3b
mov dword [esp + 0x5c], eax
mov cl, al
add cl, 0xfe
mov byte [esp + 0x73], cl
add al, 0x4b
xor al, 0xaa
mov byte [esp + 0x47], al
add al, 0xeb
mov byte [esp + 0x5b], al
mov esi, edi
mov edi, dword [esp + 0x60]
imul edi, edi
and edi, 3
mov dword [esp + 0x38], edi
mov eax, esi
and eax, 1
xor eax, esi
not eax
mov dword [esp + 0x40], eax
mov al, 0x4d
mov dword [esp + 0x74], eax
mov esi, dword [ebp + 8]
lea eax, [esi + 0x110]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x78], 0
mov al, cl
mov ebx, dword [esp + 0xa0]
jmp 0x67e680
mov ch, cl
add ch, 0x27
mov cl, ch
xor cl, 0x3e
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0xa4]
lea eax, [edx + eax]
cmp eax, 0x3f8
sete al
mov edx, dword [esp + 0x94]
inc edx
cmp edx, dword [esp + 0x3c]
movzx ebx, cl
mov esi, dword [ebp + 8]
ja 0x67f3e8
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x8c], edi
movzx eax, al
mov ebx, dword [esp + 0x48]
add ebx, eax
xor eax, eax
test al, al
mov al, ch
mov edi, dword [esp + 0x38]
je 0x67e680
jmp 0x67f3ef
mov dword [esp + 0x9c], ebx
jmp 0x67f1d3
mov byte [esp + 0x4f], ch
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x94], edx
and al, 0x80
movzx eax, al
mov dword [esp + 0x9c], eax
lea eax, [edx - 1]
mov ecx, dword [esi + 0x13c]
mov dword [esp + 0x84], ecx
imul edx, eax, 0x118
mov eax, dword [ecx + edx + 0x110]
mov esi, dword [ecx + edx + 0x114]
sub ebx, eax
mov dword [esp + 0x88], ebx
cmp edi, 2
mov edi, esi
mov ecx, dword [esp + 0x60]
cmove edi, ecx
cmp ecx, esi
cmovb edi, ecx
mov dword [esp + 0x48], edi
sub edi, eax
mov dword [esp + 0x68], edi
cmp ebx, edi
ja 0x67f1c5
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
cmp edi, esi
jbe 0x67f1d3
cmp dword [esp + 0x40], 0
je 0x67f1d3
mov ecx, dword [esp + 0x84]
lea edi, [ecx + edx + 0x110]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x9c]
xor edi, 0x3e
add edi, 0xffffffe4
mov dword [esp + 0x9c], edi
lea ecx, [ecx + edx + 0x108]
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0xa0]
shl edi, 0xa
or edi, 0x200
shl eax, 0xa
sub edi, eax
mov dword [esp + 0xa0], edi
mov ebx, dword [ebp + 0xc]
nop word cs:[eax + eax]
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
xor edi, edi
cmp ebx, 1
jne 0x67e840
mov eax, dword [esp + 0x9c]
and eax, 0xffffff4a
lea ebx, [eax + 0x2f]
mov edx, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
xor edi, edi
test eax, eax
je 0x67e84c
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x67e858
sub ebx, edx
add ebx, 0x30
movzx eax, byte [esp + 0x5b]
cmp eax, 0x13
jne 0x67e864
mov al, bl
add al, 0xb4
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
add eax, dword [esp + 0x88]
imul eax, eax, 0x3f8
add eax, 0xfffffc08
mov dword [0x80ffa4], 0
mov dword [0x80ffa8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0x682d90
call fcn.007cd860
mov eax, dword [0x80ffa4]
test eax, eax
je 0x67e8e3
movzx edx, byte [esp + 0x5b]
mov cl, byte [esp + 0x47]
jmp 0x67e8c3
mov edx, dword [esp + 0x80]
jmp 0x67e93c
mov dword [esp + 0x98], esi
jmp 0x67e977
mov dword [esp + 0x98], esi
jmp 0x67e977
mov al, bl
mov dword [esp + 0x9c], ebx
xor al, 0x53
mov bl, al
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
add eax, dword [esp + 0x88]
imul eax, eax, 0x3f8
add eax, 0xfffffc08
mov dword [0x80ffa4], 0
mov dword [0x80ffa8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0x682d90
call fcn.007cd860
mov eax, dword [0x80ffa4]
test eax, eax
je 0x67e8ef
mov byte [esp + 0x5b], bl
mov cl, byte [esp + 0x47]
mov edx, dword [esp + 0x9c]
and edx, 0xffffffb3
add edx, 0x97
movzx ecx, cl
cmp ecx, 0x28
je 0x67e901
cmp ecx, 0x45
je 0x67e906
cmp ecx, 0x49
jne 0x67e90b
add dl, 0xa4
jmp 0x67e90e
mov dword [esp + 0x98], esi
jmp 0x67e977
mov dword [esp + 0x98], esi
mov al, bl
movzx ebx, al
mov byte [esp + 0x5b], al
jmp 0x67e977
add dl, 0x9b
jmp 0x67e90e
add dl, 0x9f
jmp 0x67e90e
xor dl, 0x82
add eax, 0xc
mov dword [esp + 4], eax
lea eax, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 8], 0x3f8
mov ebx, edx
call fcn.007c51d0
xor edx, edx
mov edi, dword [0x80ffa4]
mov al, bl
mov byte [esp + 0x47], al
mov dword [esp + 0x80], edx
mov dword [esp + 0x98], esi
mov ebx, 0xd3
cmp edx, 0x83
sete al
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
setne cl
and cl, al
or cl, byte [esp + 0x66]
movzx eax, cl
cmp eax, 1
jne 0x67ea20
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.0067a470
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
mov esi, 0x6f
add ecx, eax
je 0x67f3bf
and ebx, 0xffffff00
xor ebx, 0xe
mov eax, dword [esp + 0x74]
movzx eax, al
cmp eax, 0x4d
je 0x67ea40
cmp eax, 0x58
jne 0x67ea90
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
lea ecx, [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0067a450
mov esi, 0x6b
cmp eax, 0x400
mov ecx, ebx
jne 0x67f3bf
lea eax, [ecx - 1]
add al, 0x40
mov dword [esp + 0x74], eax
jmp 0x67ead2
mov ebx, dword [ebp + 0xc]
mov esi, ebx
mov ecx, dword [esp + 0x98]
mov edx, 0xd3
jmp 0x67ed47
add bl, 0x4a
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
lea ecx, [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0067a450
cmp eax, 0x400
movzx ecx, bl
je 0x67ead2
imul eax, eax
and eax, 3
mov esi, 0x6b
cmp eax, 3
je 0x67ead2
jmp 0x67f3bf
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
lea ecx, [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0067a450
cmp eax, 0x400
mov esi, 0x6b
jne 0x67f3bf
add bl, 0x6b
mov al, bl
mov dword [esp + 0x74], eax
movzx eax, bl
mov ecx, eax
mov dword [esp + 0xa8], 0x725db5a3
lea eax, [esp + 0xa8]
mov esi, eax
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
mov ebx, ecx
call fcn.007ca970
mov dword [esp + 0xac], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x400
call fcn.0067a8d0
mov ecx, ebx
mov esi, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp esi, eax
jne 0x67f3bf
and ecx, 0xffffff88
add ecx, 0x26
movzx eax, byte [esp + 0x73]
cmp eax, 0x35
jne 0x67eba0
mov ebx, ecx
lea eax, [esp + 0xb4]
mov dword [esp], eax
call fcn.00688430
mov esi, eax
test esi, esi
jne 0x67f3bf
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 1
mov edx, ebx
ja 0x67f3bf
mov al, dl
add al, 7
mov byte [esp + 0x73], al
jmp 0x67ebcf
mov bl, cl
xor bl, 0x47
mov byte [esp + 0x73], bl
lea eax, [esp + 0xb4]
mov dword [esp], eax
call fcn.00688430
mov esi, eax
test esi, esi
movzx edx, bl
je 0x67ebcf
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x67f3bf
and edx, 0xffffffb8
mov ebx, dword [ebp + 0xc]
mov esi, ebx
cmp esi, 1
jne 0x67ec30
mov dword [esp + 0x80], 0
xor edx, 0x81
mov eax, dword [esp + 0x5c]
movzx eax, al
cmp eax, 0xa
je 0x67ec43
cmp eax, 0x37
je 0x67ec69
mov ebx, edx
cmp eax, 0x6a
jne 0x67ec9c
mov dword [esp], 0x410
call fcn.00492770
mov edi, eax
mov esi, 0x67
test edi, edi
je 0x67f3bf
add bl, 0x61
jmp 0x67eccb
mov dword [esp + 0x80], 0
xor edx, 0x74
jmp 0x67ed40
mov dword [esp], 0x410
mov esi, edx
call fcn.00492770
mov ecx, esi
mov edi, eax
mov esi, 0x67
test edi, edi
je 0x67f3bf
xor cl, 0xe2
mov bl, cl
jmp 0x67eccb
mov ebx, edx
xor ebx, 0x6f
add ebx, edx
add bl, 0xfb
mov dword [esp], 0x410
call fcn.00492770
mov edi, eax
test edi, edi
jne 0x67eccb
mov eax, edi
imul eax, eax
and eax, 3
mov esi, 0x67
cmp eax, 2
jae 0x67eccb
jmp 0x67f3bf
mov dword [esp], 0x410
call fcn.00492770
mov edi, eax
test edi, edi
mov esi, 0x67
je 0x67f3bf
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x67f3bf
xor bl, 0x9e
mov dword [esp + 0x5c], ebx
mov al, bl
and al, 0x82
movzx esi, al
xor esi, 0xf
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
add eax, dword [esp + 0x88]
imul eax, eax, 0x3f8
add eax, 0xfffffc08
mov dword [edi], eax
mov eax, dword [esp + 0xb8]
mov dword [edi + 4], eax
mov dword [edi + 8], 0
lea eax, [edi + 0xc]
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x3f8
call fcn.007c51d0
lea eax, [edi + 0x404]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.007cd800
mov edx, esi
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x98]
mov ebx, edi
and edx, 0xffffff20
or edx, 0x80
add edx, 0x63
movzx eax, byte [esp + 0x7f]
cmp eax, 0x79
jne 0x67ee00
mov al, dl
mov dword [esp + 0x9c], edx
add al, 0x29
mov byte [esp + 0x7f], al
mov eax, ecx
shr eax, 3
mov edx, 0x20408103
mul edx
shr edx, 4
imul eax, edx, 0x3f8
mov edi, ecx
sub edi, eax
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x8c]
sub eax, ecx
mov ecx, 0x3f8
sub ecx, edi
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, ecx
cmove edx, eax
cmp eax, ecx
cmovb edx, eax
mov dword [esp + 0xa4], edx
lea eax, [esp + edi + 0xbc]
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.007c51d0
cmp esi, 1
jne 0x67ef20
mov edi, ebx
test edi, edi
je 0x67ef20
movzx eax, byte [esp + 0x7f]
jmp 0x67ee80
mov al, dl
mov dword [esp + 0x9c], edx
add al, 0x96
mov byte [esp + 0x7f], al
mov eax, ecx
shr eax, 3
mov edx, 0x20408103
mul edx
shr edx, 4
imul eax, edx, 0x3f8
mov edx, ecx
sub edx, eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x8c]
sub eax, ecx
mov edi, 0x3f8
sub edi, edx
cmp eax, edi
cmovb edi, eax
mov dword [esp + 0xa4], edi
lea eax, [esp + edx + 0xbc]
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.007c51d0
cmp esi, 1
mov edi, ebx
jne 0x67ef20
test edi, edi
je 0x67ef20
mov eax, dword [esp + 0x9c]
mov ebx, eax
and ebx, 0xffffff10
mov eax, dword [esp + 0x78]
lea esi, [edi + eax + 0xc]
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c7b90
test eax, eax
je 0x67f163
xor eax, eax
test al, al
jne 0x67f163
xor ebx, 0x1e
mov eax, dword [esp + 0x50]
movzx eax, al
cmp eax, 0x3b
jne 0x67f0ce
add ebx, 0x89
add bl, 0x90
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
mov dword [edi + 8], 1
mov al, bl
mov dword [esp + 0x50], eax
movzx eax, bl
mov ebx, eax
jmp 0x67f163
mov al, byte [esp + 0x67]
mov ecx, dword [esp + 0x9c]
xor ecx, 0x3c
movzx eax, al
cmp eax, 0x2b
jne 0x67ef70
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov esi, ecx
call fcn.00688470
mov ecx, esi
mov esi, eax
and eax, 1
inc eax
xor eax, esi
sete al
movzx eax, al
cmp esi, eax
jne 0x67f3bf
mov al, cl
mov edi, ecx
xor al, 0xe0
mov byte [esp + 0x67], al
jmp 0x67ef9b
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov esi, ecx
call fcn.00688470
mov ecx, esi
mov esi, eax
test esi, esi
jne 0x67f3bf
xor cl, 0xf4
mov al, cl
mov byte [esp + 0x67], al
movzx eax, cl
mov edi, eax
mov dword [esp + 0xa8], 0x725db5a3
lea eax, [esp + 0xa8]
mov esi, eax
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0xac], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x400
call fcn.0067a820
mov esi, eax
test esi, esi
mov ecx, edi
jne 0x67f3bf
movzx eax, byte [esp + 0x65]
cmp eax, 0x32
jne 0x67f070
mov byte [esp + 0x65], 6
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.0067a470
mov edi, 6
cmp eax, 0xffffffff
jne 0x67f101
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x80], eax
xor ecx, 2
add ecx, edx
mov edi, 6
jmp 0x67f0c2
and ecx, 0xffffff0b
add ecx, 0xcb
add ecx, 0xffffffc3
mov al, cl
mov edi, ecx
add al, 0x99
mov byte [esp + 0x65], al
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.0067a470
cmp eax, 0xffffffff
jne 0x67f10a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x80], eax
mov esi, 0x6f
je 0x67f111
jmp 0x67f3bf
add ebx, 0xb3
mov al, 0x3b
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
mov dword [edi + 8], 1
jmp 0x67f163
mov dword [esp + 0x80], eax
jmp 0x67f111
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
lea ecx, [esp + 0xb4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0067a460
mov esi, 0x6b
cmp eax, 0x400
jne 0x67f3bf
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x67f3bf
and edi, 0xffffff60
xor edi, 0xd4
mov ebx, edi
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x98]
and ebx, 0xffffff08
or ebx, 0x97
mov eax, dword [esp + 0xa4]
add esi, eax
add dword [esp + 0x90], eax
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 0x88], eax
cmp eax, dword [esp + 0x68]
ja 0x67e66b
mov dword [esp + 0x9c], ebx
add dword [esp + 0xa0], 0x400
cmp edi, esi
mov ebx, dword [ebp + 0xc]
ja 0x67e770
jmp 0x67f1d3
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x9c]
and ecx, 0xffffff68
add ecx, 0x19
movzx eax, byte [esp + 0x4f]
cmp eax, 0x40
jne 0x67e60b
mov dword [esp + 0x8c], edi
add ecx, 0x18
mov dword [esp + 0x9c], ecx
mov eax, ecx
xor eax, 0x11
add al, 0x5e
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xa4]
lea ecx, [edx + ecx]
cmp ecx, 0x3f8
sete dl
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
or cl, dl
movzx ecx, cl
mov ebx, dword [esp + 0x48]
add ebx, ecx
mov esi, dword [esp + 0x94]
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
mov edx, esi
setne cl
movzx ecx, cl
add edx, ecx
mov ch, 0x11
cmp edx, dword [esp + 0x3c]
mov cl, al
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x38]
jbe 0x67e680
jmp 0x67f3ef
mov edi, dword [esp + 0x8c]
mov eax, dword [ebp + 0x24]
and ebx, 0xffffffc0
add edi, eax
mov ecx, dword [esi + 0x10c]
mov eax, dword [ebp + 0x20]
lea eax, [eax + eax*2]
cmp edi, dword [ecx + eax*4 + 8]
jbe 0x67f2c4
mov ecx, edi
not ecx
and ecx, 1
add ecx, edi
je 0x67f2c4
or bl, 0x31
movzx ecx, bl
cmp ecx, 0x7f
lea ecx, [ecx + 0x21]
jne 0x67f2b4
add cl, 0xdf
jmp 0x67f2b7
add cl, 0x2d
mov edx, dword [esi + 0x130]
mov dword [edx + eax*4 + 0x10], edi
movzx ebx, cl
mov edx, dword [ebp + 0xc]
and ebx, 0xffffff80
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edx, eax
jne 0x67f2f8
mov eax, dword [ebp + 0x14]
or bl, 0x50
movzx ecx, bl
mov ebx, ecx
xor ebx, 0x15
cmp ecx, 0x50
jne 0x67f2fc
add bl, 0xb
jmp 0x67f2ff
mov edi, esi
jmp 0x67f321
xor bl, 0x38
mov ecx, dword [esi + 0x130]
mov edi, esi
add ecx, 8
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x30
call fcn.007c51d0
movzx ebx, bl
cmp byte [esp + 0x66], 0
je 0x67f3a6
mov eax, dword [edi + 0x134]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edi + 0x134], ecx
lea eax, [edi + 0x120]
mov edx, dword [edi + 0x140]
mov esi, dword [edi + 0x144]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov dword [esp], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x1c], 0x19
mov dword [esp + 0x10], 1
mov dword [esp + 4], 1
call fcn.00682db0
mov esi, eax
test esi, esi
jne 0x67f3bf
and ebx, 0xffffff82
lea eax, [ebx + ebx + 0xa8]
xor al, 0x8c
movzx eax, al
cmp eax, 1
je 0x67f3bd
cmp eax, 0x24
xor esi, esi
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x9c]
and ebx, 0xffffffb0
add ebx, 0xfffffffd
movzx eax, cl
cmp eax, 0x1a
jne 0x67f40e
mov eax, dword [ebp + 0x2c]
mov edi, dword [eax]
jmp 0x67f27c
xor bl, 0x37
mov eax, dword [ebp + 0x2c]
mov edi, dword [eax]
movzx ebx, bl
jmp 0x67f27c